c++ - 基本的 cout/cin 问题

标签 c++ stdin

cin >> Input; {
 if(Input == "a")
  Position = "first";
 else if(Input == "b")
  Position = "second";
 else if (Input == "c")
  Position = "third";
 else if(Input == "Stop")
  break;
 }

在 cin 之后 >> 输入 我还有两个 cin 部分。由于某种原因,它跳过了 Name 的 getline。在我 cin >> 输入后它显示 Name: Status: 然后执行 getline 获取状态。

  cout << "Name: ";
   getline(cin, Name);
   if(Name == "Stop")
   break;

 cout << "Status: ";
  getline(cin, Status);
  if(Status == "Stop")
  break;

最佳答案

cin >> somevar 留下换行符。无论 somevar 是什么类型,即使是 std::string,该语句也不会读取行尾字符。因此,当您到达名称部分时,您会看到 somevar 行的行尾,这显然是空的。在尝试读取 name 之前加入一个 getline 应该没问题。

关于c++ - 基本的 cout/cin 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839445/

相关文章:

c++ - 我应该如何让我的程序正确处理所有用户输入?

C++:数字排列程序无法正常工作

c++ - C/C++ - 运行系统 ("process &"),然后写入其标准输入

bash - 将变量从 bash 传递到可执行文件(使用 stdin 读取参数)

c++ - 这两个版本的代码有什么区别?

c++ - OpenCV 人物检测样本崩溃

c++ - constexpr 构造函数不会显示覆盖率数据

tcl - ctrl+d后如何清除Tcl中的stdin?

json - 来自 STDIN 的 Python JSON 输入问题

ruby - 从标准输入获取下一个字节或 nil - Ruby