C++ 为什么fscanf在读取字符时失败?

C++ 为什么fscanf在读取字符时失败?,c++,scanf,C++,Scanf,我有以下名为“data.txt”的示例数据文件: 我希望看到: a b c a b c 出了什么问题?您没有跳过读取的第三个和第四个字符之间的空格-您需要在其中一个格式字符串中添加另一个空格 (为什么在C++中代码> fSCANF?)/P>有意义和工作!谢谢fstream不是比fscanf慢很多吗,因为它涉及到一个围绕C的基本fscanf实现的包装器?不一定。简洁和类型安全有时更重要。 #include <iostream> #include <string> #inc

我有以下名为“data.txt”的示例数据文件:

我希望看到:

a b c
a b c

出了什么问题?

您没有跳过读取的第三个和第四个字符之间的空格-您需要在其中一个格式字符串中添加另一个空格


(为什么在C++中代码> fSCANF?)/P>有意义和工作!谢谢fstream不是比fscanf慢很多吗,因为它涉及到一个围绕C的基本fscanf实现的包装器?不一定。简洁和类型安全有时更重要。

#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>

using namespace std;

int main()
{
  char a,b,c;
  FILE* fin = fopen("data.txt","r");

  fscanf(fin,"%c %c %c",&a,&b,&c);
  cout<<a<<" "<<b<<" "<<c<<endl;

  fscanf(fin,"%c %c %c",&a,&b,&c);
  cout<<a<<" "<<b<<" "<<c<<endl;

  fclose(fin);

  return 0;
}
a b c
     a b
a b c
a b c