阅读STDIN的麻烦

时间:2014-02-23 21:00:47

标签: c scanf

我试图通过stdin使用scanf读取整数但是当我尝试运行我的代码时,它希望我输入一个整数而不是读取该行。

int x = 0;
int y = 0;
scanf("%d", &x);
while (x != '\n') { 
   y += x;
   scanf("%d", &x);
}

为什么我的代码不能读取stdin中的内容?

1 个答案:

答案 0 :(得分:1)

你没有说它是如何崩溃的,但这些行:

scanf("%lld", &x);
while (x != '\n') { 
    ...
}

将长整数读入x,然后执行while循环,除非您输入的数字是10(\n的ascii)。我很确定这不是你想要的,但很难知道你想做什么。

您是否尝试循环直到没有输入数字?如果是这样,也许从scanf()检查返回值。

请注意,对scanf()的每次调用都会读取一行。