gpt4 book ai didi

c - 为什么程序不执行最终的 printf 语句?

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:53 25 4
gpt4 key购买 nike

我不明白为什么程序控制没有到达第三个 printf,就在 for 循环之后。

为什么第三个 printf 不打印?

如果我将 for 循环更改为 while 循环,它仍然不会打印。

这是程序和输出:

main()
{
double nc;

printf ("Why does this work, nc = %f\n", nc);
for (nc = 0; getchar() != EOF; ++nc)
{
printf ("%.0f\n", nc);
}
printf ("Why does this work, nc = %f", nc);
}

输出是:

Why does this work, nc = 0.000000
test
0
1
2
3
4

最佳答案

它对我来说工作正常,你是如何尝试终止程序的? for -循环应该结束一次EOFgetchar() 检测为输入.

EOFControl-Z ( ^Z ) 在 Windows 下和 Control-D ( ^D ) 在 Linux/Unix 下。输入后,循环终止,我得到最终的 printf()显示其输出。

作为最后的说明(正如@DanielFisher 所提到的),添加一个 '\n'在你最后的printf()结束时调用,因为它可能是您的特定实现所需要的,否则程序的行为可能未定义(感谢@KeithThompson 和@AndreyT 在评论中指出了这一点):

 printf ("Why does this work, nc = %f\n", nc);

关于c - 为什么程序不执行最终的 printf 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277796/

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