2 sinat 34087284 sinat_34087284 于 2016.04.18 00:03 提问

c语言输入数据,输出结果不换行问题

scanf输入,回车后结果显示在下一行中了。用什么可以将输入和输出结果显示在同一行呢?

5个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.18 10:00
已采纳

只用纯C++的话是不太可能满足可移植性的,因为这很大程度上依赖于所使用的终端,其中终端连接了stdin(通常是行缓冲)。但是你可以使用某些库来完成这个功能:

1.Windows 编译器下可用 conio。使用 _getch() 函数让你不用等待回车输入就能得到字符。我不经常使用Windows来进行开发,但是我见过我同学仅仅包含头文件 conio.h 就可以使用了。你可以在维基百科找到 conio.h 。上面列出了 getch() ,在 Visual C++ 中声明为 deprecated(不赞成使用的)。

2.Linux 中可以使用 curses,在 Windows 中也可以使用兼容的 curses 实现。相比于 conio 它也有一个 getch() 函数。(可通过 man getch 来查看它的 manpage)。同样你也可以在维基百科中找到 Curses。

如果你打算让你的程序跨平台运行的话,我推荐你使用 curses。然而我相信有一些你能用来关掉行缓冲的函数(我相信那应该叫做“原始模式”,与“加工模式”,详细可以在 man stty 中查看)。Curses 可以在跨平台跨终端的环境中帮你处理好这个。

caozhy
caozhy   Ds   Rxr 2016.04.18 00:06
 #include <conio.h>
getch()代替scanf

sinat_34087284
sinat_34087284 要回车,但是题目要求结果要显示在同一行。
一年多之前 回复
caozhy
caozhy 回复wuli?: 你不输入回车,怎么知道整数输入结束呢,比如输入123,你输入了1,我知道你是想输入1,还是还要继续输入2和3
一年多之前 回复
sinat_34087284
sinat_34087284 getch不是获得字符吗,我要输入一个整数
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.18 00:12

20120904 python 不换行输出
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Meditator_hkx
Meditator_hkx   Rxr 2016.04.18 01:46

你是希望程序在读到一个输入的时候立即给出结果吧?其实楼上说的是对的~程序需要一个输入结束的判断

qq_33617305
qq_33617305   2016.04.18 09:29

你想在同一行内出现结果的话,可以自己规定一个输入结束的标志符号。不然系统不知道你是否输入完成

Csdn user default icon
上传中...
上传图片
插入图片