第一次调用后跳过C ++ getline

时间:2017-09-27 12:09:07

标签: c++ io

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之前尝试了很多方法。但是我仍然可能/可能是错误的。我似乎无法确定它是我失踪的部分。

用户希望输入一些字符串或字母。

1 个答案:

答案 0 :(得分:1)

cin.ignore()放在getline()

下方
getline(cin,cheyeni);
cin.ignore();