注意:我在这个主题上没有找到任何内容,如果这是重复的话,请道歉。
需要:
我需要用户查看文本并将文本输入到同一行:
e.g。
Please enter your name: {user enter's name here}
我目前拥有的是:
using namespace std;
//...
cout << "Enter name: " << endl;
QString name = cin.readLine();
显示:
Enter name:
{user enters name on next line}
如何在上一行允许输入并阅读此输入?
答案 0 :(得分:3)
您需要删除行尾并刷新输出:
cout << "Enter name: " ;
cout.flush();
答案 1 :(得分:2)
在C中,可以这样做,而不打印newline
:
#include <stdio.h>
int main() {
char name[100];
printf("Enter name: "); // no newline
fflush(stdout); // ensure text is printed
fgets(name, sizeof name, stdin);
return 0;
}
答案 2 :(得分:0)
这是我的具体解决方案
感谢关于同花顺和删除换行符的“天气简”的评论(endl
)
using namespace std;
//...
cout << "Enter name: ";
cout.flush();
QString name = cin.readLine();
如果我刚删除endl
,终端会挂起,因此调用cout.flush()
解决了这个“挂起”问题。
希望这有助于其他人