我正在写一个程序时遇到使用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”
谁能帮我?
您的代码看起来它应该使用的fscanf,不SCANF。
我强烈建议使用与fgets和sscanf而不是直接调用的fscanf。
该的fscanf可以在疑问留下您的文件指针的方式失败。使用与fgets获得整行和sscanf扫描串意味着你总是知道文件指针的状态,这是很容易备份到行的开始(字符串仍然在内存中)。
您正在使用错误的函数。你应该用fscanf
。
怎么样:
freopen ("StcWx.txt","r",stdin);
scanf("%i %i %i %.2f %i %i", &Year, &Month, &Day, &Precip, &High, &Low);