我在使用C语言时遇到了一些麻烦..

我有一个文件txt与表单中的各种行:

F   65  S   4   1   139.56  3704.26

和我的计划:

p = fopen("dados.txt", "r");

if ( p == NULL) {
    printf("\n\nNao foi possivel abrir o arquivo.\n");
    exit(1);
}else{
      while ( !feof(p) ){
      fscanf(p,"%c %d %c %d %d %f %f",
          &sexo,&idade,&estadoCivil,&numFilhos,&freq,&mediaGasto,&mediaSalarial);

      printf("%c %d %c %d %d %f %f\n",
          sexo,idade,estadoCivil,numFilhos,freq,mediaGasto,mediaSalarial);
      }

回报是:

在此输入图像描述

看起来不好......

如果我将fscanf:%c更改为%f

回报是:

在此输入图像描述

看起来很棒,但变量idade总是0 ......:S

wtf我必须做什么?

===============>>#1 票数:4 已采纳

您必须在scanf调用中添加换行符:

  fscanf(p,"%c %d %c %d %d %f %f\n",
      &sexo,&idade,&estadoCivil,&numFilhos,&freq,&mediaGasto,&mediaSalarial);

如果没有scanf的换行符,第一行将是正确的,但是以下行将输入中的换行符分配给sexo

  ask by Shermano translate from so

未解决问题?本站智能推荐: