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


yupingw95 (maryyy)


#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)


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