tôi phải viết một chương trình trong C để đọc một tập tin có chứa một vài dòng văn bản, mỗi dòng chứa hai biến: một số (% f) và một chuỗi:Fscanf hoặc Fgets? Đọc một dòng tập tin sau khi dòng
EX: file.txt
============
24.0 Torino
26.0 Milano
27.2 Milano
26.0 Torino
28.0 Torino
29.4 Milano
Có là mã của tôi:
#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);
}
}
Chương trình cần đọc tất cả dòng và tìm thành phố tôi đã viết trên argv[2]
. Hơn nó sẽ cho tôi biết nhiệt độ trung bình trên thành phố đó, thông báo cho tôi nếu một dòng trong tệp có định dạng sai.
Chương trình được biên dịch chính xác cho tôi nhưng nó không xuất ra bất kỳ thứ gì trên màn hình ... làm cách nào tôi có thể giải quyết điều đó? Có đúng không khi sử dụng fscanf
trong trường hợp này hoặc tốt hơn là fgets
?
Tôi là một sinh viên như vậy, xin vui lòng, cho tôi một "academical" cách để giải quyết nó :)
Cảm ơn câu trả lời của bạn, tôi vừa sửa mã của tôi. – Lc0rE