我在使用 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
我必须做什么?
最佳答案
您必须将换行符添加到 scanf
调用中:
fscanf(p,"%c %d %c %d %d %f %f\n",
&sexo,&idade,&estadoCivil,&numFilhos,&freq,&mediaGasto,&mediaSalarial);
如果 scanf
中没有换行符,第一行将是正确的,但下一行将输入中的换行符分配给 sexo
。
关于c - 从 .txt C 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467031/