【问题标题】:Waiting for Input C++等待输入 C++
【发布时间】:2016-06-26 06:16:15
【问题描述】:

我的任务规定,除非通过键盘输入某些内容,否则什么都不会发生。但是,我无法提示用户输入任何内容。我的循环看起来像这样:

while(true){
    "Enter a string to continue:  ";
    //wait for input
    //based on input, do this.
}

程序基本上会暂停,直到用户在没有提示的情况下输入字符串输入,如果这有意义的话。

终端将显示为空白,直到用户输入某些内容,然后我的程序根据输入启动。一个简单的cin会起作用吗?

【问题讨论】:

  • 可能需要刷新输出。简单的方法是 cout
  • 我无法使用提示。我的程序无限期停止,直到用户输入一个字符串。我试过 cin.get,但那只适用于 char。
  • 您是否期望用户必须按 Enter 来表示字符串的结束?

标签: c++ input get cin


【解决方案1】:

您需要创建一个字符串变量来保存用户输入。例如,

string name;
cin >> name;
cout << "you entered: " << name << endl;

现在名称将存储用户输入。

【讨论】:

  • 这不是我真正想要的。我已经尝试过了,但它在我的程序中不起作用。基本上,我的 while 循环中不能有 cout,我只是把它作为一个例子。用户在没有提示的情况下输入。
  • 你为什么不直接删除提示?我更新了我的答案,现在程序不会提示用户,而是坐下来等待用户输入并将其存储在字符串中以供使用。
  • 天啊,我怎么没想到呢?我应该一直这样做。我在想那是行不通的。但确实如此,谢谢。
  • 如果可行,请将其作为其他人可以接受的答案。谢谢!
【解决方案2】:

你可能想要这个:

#include <iostream>
#include <string>

int main(void) {
    for(;;){ // same meaning as while(true){
        std::string str;
        std::cout << "Enter a string to continue:  " << std::flush;
        std::cin >> str; // or std::getline(std::cin, str);
        // based on the input, do something
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    相关资源
    最近更新 更多