【发布时间】:2018-12-29 12:00:01
【问题描述】:
#include <stdio.h>
int main ()
{
int c;
while ((c = getchar ()) != EOF)
{
putchar (c);
printf ("*");
}
return 0;
}
当我运行这个程序时,我得到的输出是
qwerty
q * w * e * r * t * y *
*
#我不知道最后一个“*”是如何打印的。
这与putchar()的回归有关。那么putchar() 函数实际上是如何返回的。我知道它在达到 EOF 后返回,所以在这种情况下,它不会打印任何东西,printf("*") 将被执行。但问题是,为什么最后一个* 会打印在下一行。是不是像putchar() 返回并将打印指针移到新行?
我克服这个疑问的一个理论是,如果我在输入后不按“输入”,* 将不会被打印。但它再次提出了一个问题,即我如何在不按 Enter 的情况下获得输出(在给出输入之后)?为什么会出现最后一个* 是因为按了“回车”?
【问题讨论】:
标签: c io output getchar putchar