如何使用scanf()的使用FOPEN

问题描述 投票:1回答:4

我正在写一个程序时遇到使用scanf函数的麻烦和FOPEN一起工作。

从我可以告诉我的错误路线似乎是:

FiLE * DataFile
DataFile = fopen("StcWx.txt","r");
scanf(DataFile, "%i %i %i %.2f %i %i", &Year, &Month, &Day, &Precip, &High, &Low);

从打开的文件有看起来像这样的天气数据的列表:

1944    4   12  0   58  24
1944    4   13  0.4 58  29
1944    4   14  0.54    42  29
1944    4   15  0   43  27

(这些空间是制表符)

所显示的错误是“从兼容的指针类型`的scanf”的[警告]通过ARG 1”

谁能帮我?

c fopen scanf
4个回答
15
投票

我想你想fscanfscanf


2
投票

您的代码看起来它应该使用的fscanf,不SCANF。

我强烈建议使用与fgets和sscanf而不是直接调用的fscanf。

该的fscanf可以在疑问留下您的文件指针的方式失败。使用与fgets获得整行和sscanf扫描串意味着你总是知道文件指针的状态,这是很容易备份到行的开始(字符串仍然在内存中)。


1
投票

您正在使用错误的函数。你应该用fscanf


0
投票

怎么样:

freopen ("StcWx.txt","r",stdin);

scanf("%i %i %i %.2f %i %i", &Year, &Month, &Day, &Precip, &High, &Low);

http://www.cplusplus.com/reference/cstdio/freopen/

© www.soinside.com 2019 - 2024. All rights reserved.