我试图通过stdin使用scanf读取整数但是当我尝试运行我的代码时,它希望我输入一个整数而不是读取该行。
int x = 0;
int y = 0;
scanf("%d", &x);
while (x != '\n') {
y += x;
scanf("%d", &x);
}
为什么我的代码不能读取stdin中的内容?
答案 0 :(得分:1)
你没有说它是如何崩溃的,但这些行:
scanf("%lld", &x);
while (x != '\n') {
...
}
将长整数读入x
,然后执行while
循环,除非您输入的数字是10(\n
的ascii)。我很确定这不是你想要的,但很难知道你想做什么。
您是否尝试循环直到没有输入数字?如果是这样,也许从scanf()
检查返回值。
请注意,对scanf()
的每次调用都会读取一行。