char input_Handler(int& error,int user,const char satir[]){
string cheyeni;
int error_string = 0;
char che;
char test;
cout << "Please enter your move with keyboard letters such as 'A' or 'a'\n";
//cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
//cin.ignore();
//
cin.ignore();
getline(cin,cheyeni);
........rest is not here
我有这个功能来处理我的游戏输入。此功能在游戏中被多次调用。在第一次调用时,它正确处理输入。但是当再次调用时它表现得很愚蠢。从我在网上的搜索中,人们总是说当我按Enter键时getline没有分配换行符,所以当再次调用时它不会得到我的输入而是得到&#39; \ n&#39 ;到我的字符串(cheyeni)自动。
我似乎无法修复此问题,我尝试了多项内容cin.sync(),cin.ignore()。虽然你可能认为我确实错误地使用了它,但我在getline之后的getline之前尝试了很多方法。但是我仍然可能/可能是错误的。我似乎无法确定它是我失踪的部分。
用户希望输入一些字符串或字母。
答案 0 :(得分:1)
将cin.ignore()
放在getline()
getline(cin,cheyeni);
cin.ignore();