我正在尝试编写一个与某些需要以转义字符开头的命令(ascii 27)相互作用的程序,但由于程序在尝试打印转义符时似乎挂起,因此无法测试。该程序在Ubuntu机器中使用g ++编译,并从gnome-terminal:
运行#include <cstdlib>
#include <iostream>
#include <unistd.h>
#include <limits>
using namespace std;
int main()
{
string str;
const int numSamples=10;
const int escapeInt = 27;
const char escapeChar = escapeInt;
// sleep(30);
//Ask for the latest test results
cin.clear();
// cin.ignore(numeric_limits<streamsize>::max());
cout << "\n\n\n";
cout << escapeChar << "PF2 -" << numSamples;
cerr << "\n\n\n" << escapeChar << "PF2 -" << numSamples;
// cin.ignore(2,'\n');
getline( cin, str, '\n');
cerr << str;
int k=1;
while (k<=numSamples)//getline(cin, str))
{
getline( cin, str, '\n');
k++;
cerr << str << endl;
}
return 0;
}
输出只有三个空白行,然后程序无响应。它甚至不响应ctrl-c。有关如何解决这个问题的任何建议吗?
答案 0 :(得分:-1)
哦,我可以回答我自己的问题。正如@Alf所建议的那样,(谢谢)似乎我不应该尝试将转义序列打印到cerr,因为我的终端解释了它,在我的情况下使用gnome-terminal,它是一个no -no。
感谢有用的见识人员!