如果我运行1个数据,程序执行是成功。2但是2个数据格式文件不正确。3我哪里出错了?
文件.txt
1,Nanggroe Aceh Darussalam,Rumah Sakit,RSU Cut Nyak Dhien,Jl. Tm Bahrum No. 1 Langsa
2,Jawa Barat,Klinik Utama,dr. Sunarhadi,Raya Cikaret No. 12
读取代码
do{
read = fscanf(file,
"%d,%100[^,],%100[^,],%100[^,],%100[^,]\n",
&students[records].no,
students[records].prov,
students[records].tipe,
students[records].nama,
students[records].alamat);
if (read == 5) records++;
if (read != 5 && !feof(file)){
printf("File format incorrect.\n");
return 1;
}
if (ferror(file)){
printf("Error reading file.\n");
return 1;
}
} while (!feof(file));
输出显示
File format incorrect.
我怎么能输出像
No : 1
Prov : Nanggroe Aceh Darussalam
Tipe : Rumah Sakit
Nama : RSU Cut Nyak Dhien
Alamat : Jl. Tm Bahrum No. 1 Langsa
No : 2
Prov : Jawa Barat
Tipe : Klinik Utama
Nama : dr. Sunarhadi
Alamat : Raya Cikaret No. 12
1条答案
按热度按时间7cwmlq891#
格式不正确。行中应有 * 尾随 * 逗号。
变更:
转入:
注:
1.千万不要使用
feof
。只需检查fscanf
的返回值并确保它等于5。请参见:Why is “while( !feof(file) )” always wrong?1.您选中
ferror
,但从未显示printf
中的errno
内容