提问人:meivinay 提问时间:2/20/2020 最后编辑:meivinay 更新时间:2/20/2020 访问量:131
put() 在 C [closed] 中打印重复的行
put() prints duplicate lines in c [closed]
问:
我正在尝试运行以下代码:
#include<stdio.h>
void main()
{
int c;
while((c=getchar()) !=EOF)
putchar(c);
}
我只输入了一次“嗨”(或任何其他单词),当我按下输入时,再次用新行打印同样的东西,无论该行有多大
我不知道发生了什么,输入流没有缓冲
答:
2赞
Ctx
2/20/2020
#1
您的终端以线路模式运行。因此,当您键入字符时
hi
程序尚未读取它们。它们只是回声到您的终端。当您按 Enter 键时,所有字符(加上换行符)都会发送到程序的 stdin。这些是逐个字符读取的,然后输出。因此,文本会在终端中出现两次。hi
如果你想改变这一点,你必须将终端置于字符模式并关闭本地回声。像 ncurses 这样的库可以帮助你。
评论
1赞
meivinay
2/20/2020
天哪,谢谢,现在我明白为什么会这样了
评论
putchar('\n');
while