#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
long num;
long sum=0;
int status;
printf("請輸入你想要求和的數(shù)字(輸入q退出):");
status=scanf("%ld",&num);
while(status==1)
{sum=sum+num;
printf("請輸入你想要求和的數(shù)字(輸入q退出):");
status=scanf("%ld",&num);
}
printf("和為%ld",sum);
return 0;
}
捕獲.PNG
scanf()函數(shù)返回成功讀取項的數(shù)量。如果scanf()成功讀取到一個整數(shù),就把該數(shù)存入num并返回1,隨后返回值將被賦給status。這樣做同時更新了num和status的值,如果用戶輸入的不是數(shù)字,scanf()會讀取失敗并返回0。
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
long num;
long sum=0;
int status;
printf("請輸入你想要求和的數(shù)字(輸入q退出):");
status=scanf("%ld",&num);
while(status=1)
{sum=sum+num;
printf("請輸入你想要求和的數(shù)字(輸入q退出):");
status=scanf("%ld",&num);
}
printf("和為%ld",sum);
return 0;
}
捕獲.PNG
while(status==1) 變成 while(status=1)程序的循環(huán)一直循環(huán),如果scanf()讀取指定類型的輸入形式的輸入失敗,就把無法讀取的輸入留在輸入列表中 ,供下次讀取。當scanf()把q作為整數(shù)讀取失敗時失敗了,他把q留下。在下次循環(huán)時,scanf()從上次讀取失敗的地方(q)開始讀取,scanf()把q作為整數(shù)讀取,又失敗了。