一旦用户输入 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;
}
答案 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 不会附加任何特殊的系统操作,所以你不应该把它作为输入。