从.txt C读取

我在使用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我必须做什么?

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

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

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