我已经安装了ncurses.h lib并开始尝试使用getch()函数。当我构建并运行这个代码时,我起初看起来很不错,控制台打印出一个奇怪的字符:' '(如果它没有显示并显示为空格这里是一个屏幕截图:https://prnt.sc/gbrp7b)控制台开始发送垃圾邮件但是如果我输入一个字符,它会显示在输出中但仍然是' '垃圾邮件。这是代码:
#include <iostream>
#include <fstream>
#include <ncurses.h>
using namespace std;
int main(){
char input;
while(true){
input = getch();
cout << "You entered : " << input << endl;
//break;
}
return 0;
}
所以我想尝试使用if语句尝试阻止垃圾邮件,但代码无法识别该字符:
它给出了这个错误:
error: character too large for enclosing character literal type
对于此代码:
#include <iostream>
#include <fstream>
#include <ncurses.h>
using namespace std;
int main(){
char input;
while(true){
input = getch();
if(input!='�'){
cout << "YOu entered : " << input << endl;
}
}
return 0;
}
我在OSX Sierra 10.12.5并使用eclipse Oxygen
答案 0 :(得分:0)
您需要使用ncurses
初始化initscr()
并使用endwin()
函数将其关闭:
#include <iostream>
#include <fstream>
#include <ncurses.h>
using namespace std;
int main(){
char input;
initscr();
while (true) {
input = getch();
cout << "YOu entered : " << input << endl;
}
endwin();
return 0;
}