我是C的新手,经过一些研究后无法得到答案。
如果我没有输入(命中回车)到scanf(),我有一个我要终止的while循环。以下不起作用......
int data;
while(1){
scanf("%d", &data);
if data == NULL{
break;
}
}
答案 0 :(得分:3)
使用scanf的返回值:
int data;
while (1) {
int n = scanf("%d", &data);
if (n != 1)
break;
// ...
}
答案 1 :(得分:0)
使用fgets()/sscanf()
int data;
char buf[40];
while (fgets(buf, sizeof buf, stdin) != NULL) {
if (sscanf(buf, "%d", &data) != 1) break;
// do stuff with data
}