#38942: 可以使用scanf & getchars()來完成嗎?


yupingw95 (maryyy)

學校 : 不指定學校
編號 : 259784
來源 : [140.113.136.221]
最後登入時間 :
2024-01-08 10:57:45
d392. 读取练习——强大的加法! -- liouzhou_101 | From: [1.169.237.6] | 發表日期 : 2024-01-05 23:18

#include <stdio.h>

 

int main(){
long int sum=0;
int num;
char c;
while(1){
int result = scanf("%d", &num);
if (result == 1){
sum += num;
}

 

c = getchar();
if (c == '\n'){
printf("%ld\n", sum);
sum = 0;
}
else if (c == EOF){
printf("%ld\n", sum);
break;
}
}
}

在我的程式碼中我發現一個bug,那就是如果第一行的最後一個數字後面有空白格,那麼c就不會是\n,所以sum會一直加到下一行
但我想不到如果用scanf跟getchar是否還有別種做法?
或是其他做法也歡迎提示我,感謝QQ
 
#38947: Re: 可以使用scanf & getchars()來完成嗎?


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
d392. 读取练习——强大的加法! -- liouzhou_101 | From: [101.137.135.221] | 發表日期 : 2024-01-06 10:59

我的做法是先用fgets讀取一整行,再用sscanf轉為數字

 
ZeroJudge Forum