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

时间:2014-04-26 16:10:37

标签: c++ scanf

我有以下样本数据文件标题为" data.txt":

a<tab>b<tab>c<newline>
a<tab>b<tab>c<newline>

和以下代码:

#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

出了什么问题?

1 个答案:

答案 0 :(得分:1)

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

(为什么{+ 1}}在C ++中呢?)