CodeBlocks上的C:如何在不按“enter”的情况下发送用户输入?

问题描述:

我正在尝试使用CodeBlock在Windows上的“C编程语言”的一个例子,我不知道如何获得用户输入而不必按Enter键。这个程序使用getchar()计算输入行数,所以当我运行它时,“enter”只能作为\ n使用,并且不允许我发送输入。有没有其他方法可以做到这一点?CodeBlocks上的C:如何在不按“enter”的情况下发送用户输入?

编辑 问题出在编译器上。在查看它一段时间后找出它

+1

看看'getch'函数,它获得一个按键。您当然可以使用循环根据需要多次执行'getch'。我有一种感觉,可能有更高层次的做法。 –

+1

'这个程序计算输入中的行数'哪个程序? – Michi

这不是C编程语言的问题。它与你用来与C程序接口的终端有关。

默认情况下,大多数终端会缓存您键入的输入,并且只有在您按Enter键结束该行后才将其发送到程序。这是允许您使用退格键更正输入错误之前,它们被发送到C程序。

如果您没有创建交互式程序,那么如果您重定向程序输出以从文件而不是从终端读取,则getchar()将不必等待。毕竟,输入文件从一开始就在那里。

./myprogram.exe < myinputfile.txt 

如果你想创建一个交互式程序,那么你可以做最简单的事情是接受了输入是一个全系列的一次。用户在终端上输入的内容就是期望的。

如果您希望您的应用程序立即响应按键,那么您将需要使用标准C库之外的东西。例如,在Linux中,您可以使用ncurses来创建可立即响应按键的终端应用程序,包括箭头键等。