put()在c [关闭]中打印重复的行

问题描述 投票:0回答:1
我正在尝试运行以下代码:

#include<stdio.h> void main() { int c; while((c=getchar()) !=EOF) putchar(c); }

我只键入了一次“ hi”(或其他任何单词),当我按下该命令时,无论换行有多大,都用换行再次输入相同的内容

output

我不知道发生了什么,输入流没有缓冲

c string while-loop newline eof
1个回答
2
投票
您的终端以线路模式运行。因此,当您键入字符时

hi

该程序尚未读取它们。它们只是

echoed到您的终端。当您按下Enter时,所有字符(hi加换行符)都将发送到程序的标准输入。逐个字符地读取它们,然后输出。因此,文本在您的终端中显示为[[两次

如果要更改此设置,则必须将终端置于字符模式,然后切换

关闭本地回显。像ncurses

这样的库可以帮助您。
© www.soinside.com 2019 - 2024. All rights reserved.