gpt4 book ai didi

c - 循环持续时间比预期检查空行的时间长

转载 作者:行者123 更新时间:2023-11-30 14:52:48 24 4
gpt4 key购买 nike

我有一个循环,一旦标志设置为 1,该循环就会停止。

scanf("%d", &next);
scanf("%d", &next1);
int done=0,next,next1;
while (done==0) {
printf("%d,%d.",next,next1);
if (getchar()=='\n') {
scanf("%d", &next);
scanf("%d", &next1);
}
//if not, set flag and stop looping
else{
done=1;
}
}

每次循环都会从输入的每一行中扫描 2 个数字,直到没有更多的输入行为止。我认为这可以正常工作,但在测试以下输入时遇到了问题:

1 0
1 1
1 2
1 3

输出应该是

1,0.
1,1.
1,2.
1,3.

而是将最后一个循环打印两次,如下所示:

1,0.
1,1.
1,2.
1,3.
1,3.

为什么在终止之前会扫描最后一行两次?是否有一个我可以检查的字符,以便它在打印第一个“1,3.”后结束?

最佳答案

我会建议类似的事情

int main(){
int next,next1;
scanf("%d", &next);
scanf("%d", &next1);
while (getchar()=='\n') {
printf("%d,%d.\n",next,next1);
scanf("%d", &next);
scanf("%d", &next1);
}
}

这样可以节省一点内存,并且可读性更强。现在输出应该是正确的,您自己尝试一下。

关于c - 循环持续时间比预期检查空行的时间长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47563422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com