[英]using fscanf to read stream of data from file
我需要從文件中讀取數據,它看起來像:
0 1.8750 274.90 0 0 0
1 3.7500 370.50 0 1 0
2 7.5000 463.50 0 2 0
所以我使用:
fscanf(p,"%d%f%f%d%d%d",&a, &b,&c,&d,&t,&q);
當我試圖查看它是否正確讀取時,我使用了:
printf("A %d",a);
printf("B %f",b);
輸出 :
A 0B -1.882607
那么,為什么fscanf不能正確讀取浮點數?
可能的問題來源是錯誤匹配fscanf()
指令
要么
不完整的 fscanf()
閱讀。 可能是由於未打開的文件或意外的輸入文本。
A 0B -1.882607
| || +--------- b value -1.882607
| |+----------- Letters B space
| +------------ a value 0
+-------------- Letters A space
確保您的變量是以下類型:
int a,d,t,q;
float b,c;
檢查fscanf()的結果
int result = fscanf(p,"%d%f%f%d%d%d",&a, &b,&c,&d,&t,&q);
if (result != 6) {
printf("Error, unexpected return value:%d\n", result);
}
OP的其他信息將有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.