如何在C ++中检测CTRL-X的用户输入

时间:2017-09-03 21:02:59

标签: c++ ctrl

一旦用户输入 CTRL - X 或' /',我需要结束我的功能。我不知道如何检测/检查 CTRL - X 的用户输入。 给我的任务说明: '编辑文件时,您将逐行输入数据,完成后,您将输入' / '或 CTRL + X 退出。'

到目前为止,我已编写此代码。我是初学者,所以请原谅我的代码。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    string data;
    int line_num=1;
    ofstream editFile;
    editFile.open("edit_test.txt");

    while(data!="/"){ //some kind of condition ORed with the condition already present in while loop? 
        cout<<line_num<<"> "; //I want to display line numbers every time the user presses enter
        getline(cin, data);
        if(data!="/"){
            editFile<<data<<endl;
            line_num++;
        }
    }

    editFile.close();
    return 0;   
}

1 个答案:

答案 0 :(得分:0)

CTRL + X 与字符代码24相同(因为 X 是字母表的第24个字母)。除非系统干扰*,您只需检查字符代码24是否在输入中。

while (getline( std::cin, s ))
{
  // Find ^C in s
  auto n = s.find( '\x18' );
  if (n != s.npos) s = s.substr( 0, n );

  // process s normally here

  // If ^C was found in s, we're done reading input from user
  if (n != s.npos) break;
}

CTRL + X 不会附加任何特殊的系统操作,所以你不应该把它作为输入。