C++ getchar函数在整数之后使用时跳过了第一个字符

C++ getchar函数在整数之后使用时跳过了第一个字符,c++,string,char,getchar,C++,String,Char,Getchar,大家好这个问题让我发疯了 我必须多次以大行作为输入。我使用以下代码 #include <iostream> #include <string.h> using namespace std; int main() { int T; char buffer,b1; cin >> T>> b1; //fflush(stdin); while(T--) { char ch,c;

大家好这个问题让我发疯了 我必须多次以大行作为输入。我使用以下代码

#include <iostream>
#include <string.h>
using namespace std;

int main() {

    int T;
    char buffer,b1;
    cin >> T>> b1;
    //fflush(stdin);

    while(T--)
    {
        char ch,c;
        int A[14];
       while((ch=getchar())!='\n')
       {
           cout << ch;
       }
    }
    return 0;
}
它给出以下输出

58
8758

正如评论中所建议的那样,替换

cin >> T>> b1;


它可以工作

您显示的代码有一些问题。首先返回一个
int
。当您检查
EOF
时,这一点很重要,这会导致第二个问题:您没有检查文件结尾或错误。还有一个潜在的第三个问题,但你注释了:在C和C++的规范中,在一个只输入流中执行<代码> FFLUSS未定义。用cin>>T;不需要像您所说的那样读取空值。1)放入
#包含
。2) 
cin>>T>>b1-->
cin>>T;cin.ignore()使用
cin.get(ch)
读取非getchar@Sudhir Tiwar的字符,因此它的字符数是我们宇宙中原子数的10^99877倍。伟大的
cin >> T>> b1;
cin >> T; cin.ignore();