我在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
call:
fscanf(p,"%c %d %c %d %d %f %f\n",
&sexo,&idade,&estadoCivil,&numFilhos,&freq,&mediaGasto,&mediaSalarial);
没有换行符scanf
,第一行是正确的,但下面的行将输入中的换行符分配给sexo
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)