如何使这个 while 循环在新行结束

问题描述 投票:0回答:2
#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==“ “)似乎不起作用。

arrays c loops while-loop
2个回答
0
投票

我会使用

getc
来一一获取字符并测试它是否是换行符。然后将它们解析为整数,我认为这不是很难。


0
投票

您可以:检查 EOF 字符而不是换行符。

if(scanf("%d" , &a)){
    //do something
}

您可以使用 CTRL+Z(Windows) CTRL+D(Unix)“键入”EOF。

或者你可以使用

getc
将整行放入缓冲区并将它们解析为整数(上面已经提到),但第一个会更容易做到。

© www.soinside.com 2019 - 2024. All rights reserved.