我必須寫在C程序來讀取包含文本的幾行一個文件之後的文件中的行,每行包含兩個變量:一個數字(%f)和一個串:Fscanf或Fgets?讀取線
EX: file.txt
============
24.0 Torino
26.0 Milano
27.2 Milano
26.0 Torino
28.0 Torino
29.4 Milano
有是我的代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[])
{
int r, line = 0, found = 0;
float temp, t_tot = 0;
char loc[32];
FILE *fp;
fp = fopen(argv[1], "r");
if (fp == NULL)
{
printf ("Error opening the file\n\n'");
exit(EXIT_FAILURE);
}
if (argc == 3)
{
r = fscanf(fp, "%f %s\n", &temp, loc);
while (r != EOF)
{
line++;
if (r == 2)
{
if(strcmp(argv[2], loc) == 0)
{
t_tot += temp;
found++;
}
}
else
printf ("Error, line %d in wrong format!\n\n", line);
}
printf ("The average temperature in %s is: %.1f\n\n", argv[2], (t_tot/found);
}
}
程序需要讀取所有的行,發現我在argv[2]
寫的城市。它會告訴我該城市的平均氣溫,通知我文件中的某一行是否格式錯誤。
該程序正在編譯我,但它不輸出任何東西在屏幕上......我該如何解決?在這種情況下使用fscanf
是正確的還是更好的fgets
?
我是一個學生,所以,請給我一個「跑位」的方式來解決這個問題:)
謝謝您的回答,我剛更正了我的代碼。 – Lc0rE