当我运行该函数并键入一个字符串时,我看到在标准输出中打印回来的字符串。我相信我有一个缓冲区的问题,但我似乎无法弄清楚这一点。调用fgets的结果在字符串打印到标准输出
0
A
回答
0
当您在控制台中键入字符时,它们会回显给您。当您从stdin
读取字符时,仍会读取这些字符。
或者,您可以将程序的输出传送到您自己的程序中,或将文件重定向到标准输入。在这两种情况下,字符不会附和道:
echo Program output | ./myprog
或:
./myprog < fileinput.txt
编辑 - 听起来就像是一个终端问题。
你还没有说明你使用的是什么系统,或者你如何与它接口,但是我可以通过使用PuTTY通过SSH连接到系统来获得这种行为。
我改变终端设置强制“本地回声”和“本地线路编辑”。然后,每当我按下回车键时,我都会回应这一行。显然只有其中一个应该开启。最好是“本地回声”。
1
当你运行它,如果你看到:
./program
input<CR>
input
<prompt>
然后你提供的代码是不负责这样做。使用一些调试语句或调试器来确定回声来自哪里,因为这不是fgets所做的。
如果您看到:
./program
input<CR>
<prompt>
然后就是刚刚终端将如何工作。除非您禁用该功能(用于输入密码),否则它们会在您键入时回显文本。
+0
这也回答了我的问题。我给了@paddy的答案,因为他是第一个回答我回答的问题。 – Alex
0
这样做的一个常见原因是在您的终端(推测这是一个仿真器)和OS终端驱动程序中都启用了回显功能。假设你使用Unix,如果你这样做,问题就消失了:
stty -echo
运行你的程序之前?
相关问题
- 1. Haskell打印字符串标准输出
- 2. 打印到标准输出与结果之间的空间?
- 3. 打印unicode字符到标准输出python打印错误的字形
- 4. 打印到标准输出使用AppleScript
- 5. 使用HiveQL打印到标准输出
- 6. 打印到标准输出在sml
- 7. 打印输出字符串
- 8. epoll_wait()块打印到标准输出
- 9. Objective C打印标准输出到UIAlertView
- 10. 打印文件名到标准输出
- 11. Django停止打印到标准输出
- 12. Subprocess.communicate打印换行到标准输出
- 13. 打开文件,打印到标准输出,追加到文件,并再次打印到标准输出
- 14. Python的打印字符串结果
- 15. 如何在ruby中将输出打印到标准输出时使用回调
- 16. subprocess.check_output仍然打印在标准输出
- 17. 打印字符串结果汇编
- 18. 将结果打印输出到文件
- 19. Python traceback.print_exc()打印到标准输出或标准错误吗?
- 20. 打印字符串流输出指针
- 21. 在MS-DOS /程序集中将单个字符从字符串打印到标准输出中x86-16
- 22. 在程序集x86中将字符打印到标准输出中
- 23. MySQL查询打印为CSV输出到标准输出
- 24. 保存命令输出没有它打印到标准输出
- 25. 打印输出结果摘要在R
- 26. 服务器打印到标准输出而不是套接字
- 27. 在标准输出中打印数字的程序
- 28. Qt标准输出。 cout不打印
- 29. 使用Python打印到标准输出上的特定行
- 30. 打印输出结果在while循环输出不同的结果在Java azure
当你说“打印回标准输出”时,你的意思是终端在键入数据时回显数据吗? –
@WilliamPursell,编号字符串在我输入时显示,但按Enter键后也会再次显示。 – Alex