#include<stdio.h>
#define LINESIZE 1024
int n, sum =0;
char line[LINESIZE];
int main() {
while(1) {
printf("enter an integer: ");
if(!fgets(line, LINESIZE, stdin)) {
clearerr(stdin);
break;
}
if (sscanf(line, "%d", &n) == 1)
sum += n;
}
printf("%d \n",sum);
}
當我在Cygwin中運行這個時,輸出似乎是無限的,我不知道如何返回sum
?我錯過了什麼嗎?如何在C中退出while循環?
enter an integer: 1
enter an integer: 2
enter an integer: 3
enter an integer: 4
enter an integer: 5
enter an integer: 6
CTRL-d表示 – LogicG8
@ LogicG8 TY :))) – Rgoat
文件結束,你的時候期待'fgets'返回0?它只會在遇到文件標記結束時返回空指針,即'CTRL-D' – bruceg