put()在c中打印重复的行
我试图运行以下代码:put()在c中打印重复的行,c,string,while-loop,newline,eof,C,String,While Loop,Newline,Eof,我试图运行以下代码: #include<stdio.h> void main() { int c; while((c=getchar()) !=EOF) putchar(c); } #包括 void main() { INTC; 而((c=getchar())!=EOF) 普查尔(c); } 我只打了一次“hi”(或任何其他单词),当我按e
#include<stdio.h>
void main()
{
int c;
while((c=getchar()) !=EOF)
putchar(c);
}
#包括
void main()
{
INTC;
而((c=getchar())!=EOF)
普查尔(c);
}
我只打了一次“hi”(或任何其他单词),当我按enter键时,会用新行再次打印相同的内容,不管这行有多大
我不知道发生了什么,输入流没有缓冲您的终端在线路模式下运行。所以当你输入字符时
hi
程序还没有读取它们。它们只是回显到你的终端。按Enter键时,所有字符(hi
加上换行符)都会发送到程序的stdin。这些字符被逐字读取,然后输出。因此,文本在终端中出现两次
如果你想改变这一点,你必须把你的终端进入字符模式,并关闭本地回声。像ncurses这样的库可以帮助您实现这一点。您的终端在线路模式下运行。所以当你输入字符时
hi
程序还没有读取它们。它们只是回显到你的终端。按Enter键时,所有字符(hi
加上换行符)都会发送到程序的stdin。这些字符被逐字读取,然后输出。因此,文本在终端中出现两次
如果你想改变这一点,你必须把你的终端进入字符模式,并关闭本地回声。像ncurses这样的库可以帮助您实现这一点。您希望得到什么样的输出?请将您的问题以文本形式包括输入、实际输出和预期输出。也请花一些时间阅读,以及。代码正在做你告诉它!一次输入一个字符,然后一次打印一个字符。可能会添加一个
putchar('\n')代码>在while
循环中,查看实际发生的情况。我希望当我键入“hi”并按enter键时,它会将我带到新行而不是新行,并且不会再次打印“hi”。您希望得到什么输出?请将您的问题以文本形式包括输入、实际输出和预期输出。也请花一些时间阅读,以及。代码正在做你告诉它!一次输入一个字符,然后一次打印一个字符。可能会添加一个putchar('\n')在您的while
循环中,查看实际发生的情况。我希望当我键入“hi”并按enter键时,它会将我带到新行,而不是新行,并且不会再次打印“hi”。天哪,谢谢,现在我知道为什么会发生了感谢,现在我知道为什么会发生了