C++ C++;getline在第一次调用后被跳过 char输入\u处理程序(int&error,int-user,const-char-satir[]){ 弦切耶尼; int error_string=0; char-che; 煤焦试验; 不能将

C++ C++;getline在第一次调用后被跳过 char输入\u处理程序(int&error,int-user,const-char-satir[]){ 弦切耶尼; int error_string=0; char-che; 煤焦试验; 不能将,c++,io,C++,Io,C++;getline在第一次调用后被跳过 char输入\u处理程序(int&error,int-user,const-char-satir[]){ 弦切耶尼; int error_string=0; char-che; 煤焦试验; 不能将你的cin.ignore()放在getline()下面 为了澄清这一点,当我调试程序时,在第二次调用函数时,它希望您得到输入,但在getline()时不需要调用,就在调用/应该调用之前。然后在我分配输入后,它继续流式处理,但它没有将我的cin输

C++;getline在第一次调用后被跳过
char输入\u处理程序(int&error,int-user,const-char-satir[]){
弦切耶尼;
int error_string=0;
char-che;
煤焦试验;

不能将你的
cin.ignore()
放在
getline()下面


为了澄清这一点,当我调试程序时,在第二次调用函数时,它希望您得到输入,但在getline()时不需要调用,就在调用/应该调用之前。然后在我分配输入后,它继续流式处理,但它没有将我的cin输入分配给字符串。很明显,输入缓冲区中有一个剩余的换行符,调用
ignore
应该删除它。如果它似乎不起作用,那么输入缓冲区中可能有多个换行符?你能试着创建一个让我们看,并向我们展示你给程序的输入吗?@DragonRock它有分段错误。我的游戏从终端获得输入。它可以获得类似“LOAD FILE.TXT”的内容,也可以保存版本来做这些事情。或者输入类似“a”,“B”.因为我认为用户可以输入带有空格的内容,所以我不得不使用getline。我不知道还有什么其他选项可以获得完整的行。可能是重复的
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
getline(cin,cheyeni);
cin.ignore();