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();