#include <stdio.h>
int main() {
int lista[9999];
int a;
int i = 0;
while(scanf(" %d", &a) == 1)
{
lista[i] = a;
i++;
}
return 0;
}
我期待输入整数和它们之间的空格,我不想用一个 scanf 来读取它,因为将根据整数完成一些计算。如何使这个循环在新行结束?如果(a==“ “)似乎不起作用。
我会使用
getc
来一一获取字符并测试它是否是换行符。然后将它们解析为整数,我认为这不是很难。
您可以:检查 EOF 字符而不是换行符。
if(scanf("%d" , &a)){
//do something
}
您可以使用 CTRL+Z(Windows) CTRL+D(Unix)“键入”EOF。
或者你可以使用
getc
将整行放入缓冲区并将它们解析为整数(上面已经提到),但第一个会更容易做到。