#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