猿问

cin.getline在while循环中的错误

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    char *pWord; 
    char word[100],newWord[100];
    int repeat,pCurrent;
    cin>>repeat;
    cin.ignore();
    while(repeat--){
        cin.getline(word,100);
        cin>>pCurrent; 
        pWord=word+pCurrent;//移动位数 
        if(pCurrent>strlen(word))
          cout<<"error input";
        else
      {
        strncpy(newWord,pWord,strlen(word)-pCurrent/*去除前面的字符*/);
        cout<<newWord;
       }
        cin.ignore(); 
} 
return 0;
}

我认为输入:

3

abc def

2

def abc

2

会输出

bc def

ef abc

但是在第二次输入 def abc时还没有输入2就直接再次输出了bc def

搞不懂是由于什么引发的


hc茶
浏览 1112回答 0
0回答
随时随地看视频慕课网APP
我要回答