C中读取和解析文件
Reading and parsing files in C
我有一个文件 file.txt 包含两列科学数据。
每行包含两个值(一个用于第 0 列,一个用于第 1 列)。
10 9.5
-8 5
-8 5
-3 6.25
-9 4.75
4 8
-6 5.5
...
我的任务是用 C 编写一些软件来计算第 1 列的平均值并显示结果。
您可以使用 fscanf
。 fscanf
有点像 printf
的反义词。您指定要读取的字符串类型以及这些值将分配给哪些变量。 fscanf
将读取文件的每一行,并将 return 读取成功的元素数。
#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE* test_file = fopen("test.txt", "r");
double sum = 0;
unsigned number_elements = 0;
while(1){
double first, second;
if (fscanf(test_file, "%lf %lf", &first, &second) < 2){
break;
}
++number_elements;
sum += second;
}
fclose(test_file);
printf("Average: %f\n", sum/number_elements);
return 0;
}
我有一个文件 file.txt 包含两列科学数据。 每行包含两个值(一个用于第 0 列,一个用于第 1 列)。
10 9.5
-8 5
-8 5
-3 6.25
-9 4.75
4 8
-6 5.5
...
我的任务是用 C 编写一些软件来计算第 1 列的平均值并显示结果。
您可以使用 fscanf
。 fscanf
有点像 printf
的反义词。您指定要读取的字符串类型以及这些值将分配给哪些变量。 fscanf
将读取文件的每一行,并将 return 读取成功的元素数。
#include <stdio.h>
int main(int argc, char const *argv[])
{
FILE* test_file = fopen("test.txt", "r");
double sum = 0;
unsigned number_elements = 0;
while(1){
double first, second;
if (fscanf(test_file, "%lf %lf", &first, &second) < 2){
break;
}
++number_elements;
sum += second;
}
fclose(test_file);
printf("Average: %f\n", sum/number_elements);
return 0;
}