使用回车键

时间:2018-10-08 00:08:13

标签: c++ while-loop conditional

我正在为学校项目的头文件和实现文件编写一个主程序文件。我已经让我的项目完成了我希望它做的所有事情,除了当用户点击“返回”按钮时退出。

这是我的包含主要功能的程序:

#include <iostream>
#include "date.h"
#include <string>

using namespace std;

int main()
{

    dateType date1(1, 6, 2000);
    dateType date2(15, 20, 2018);
    dateType date3(2, 30, 2019);
    dateType date4;

    date1.printDate();
    cout << endl;
    date2.printDate();
    cout << endl;
    date3.printDate();
    cout << endl;

    string test;

    int month, day, year;

    cout << "Enter month day year: " << endl;
    cin >> month >> day >> year;

    date4.setDate(month, day, year);
    date4.printDate();
    cout << endl;

    cin.clear();
    cout << "press any key to continue... ";

    while (getline(cin, test)) {
    if (test.empty()) 
        break;

    }
    return 0;
}

我应该为用户按下Enter键以外的其他键编写else语句。但是我正在尝试让这部分首先工作。

如何使while循环正确执行?

1 个答案:

答案 0 :(得分:1)

您的意图尚不清楚,但无论如何我都会尝试回答,首先,要将标准输入传递到程序中,至少在Linux上必须按下enter键。除非使用精巧的第三方库生成在后台侦听按键的工作线程,否则按键监听器在控制台应用程序中不是必需的。

剩下的就是测试输入的输入是否为空或是否包含任何数据。我看不到您的代码有任何问题,我创建了一个经过测试,缩小和验证的示例。

#include <iostream>
#include <string>

using namespace std;

int main() {
  cout << "press any key to continue... ";

  string test;
  while (getline(cin, test)) {
    cout << test << test.length();  // For debugging purposes
    if (test.empty())
      break;
  }
  return 0;
}