请编写函数,从一个文件中读取实数求和,并将结果写入另一个文件。
void BatchAdd(FILE *in, FILE *out);
说明:参数 in 和 out 为指示两个文件的指针。函数从 in 所指文件中的读出数据,将结果写入 out 所指的文件中。
要求:in 所指文件中有很多行,每行包含两个实数,以空格间隔。函数求出这两个实数的和,写入 out 文件中,每行一个结果。
要求:输出结果保留 2 位小数。
#include <stdio.h>
#include <stdlib.h>
void BatchAdd(FILE *in, FILE *out);
int main()
{
FILE *in, *out;
in = fopen("Addition.txt", "r");
out = fopen("Sum.txt", "w");
if (in && out)
{
BatchAdd(in, out);
}
else
{
puts("文件无法打开!");
}
if (in)
{
fclose(in);
}
if (out)
{
fclose(out);
puts("文件保存成功!");
}
return 0;
}
/* 你提交的代码将被嵌在这里 */
在程序所在文件夹中创建文本文件“Addition.txt”,复制下面的内容:
Addition.txt
25.9 8.7
120.9 87.518
12.8 65.2
(无)
文件保存成功!
程序运行结束后,打开“Sum.txt”文件,查看文件内容。
34.60
208.42
78.00
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C程序如下:
void BatchAdd(FILE *in, FILE *out) {
double a, b; // 定义双精度浮点数变量a和b,用于存储从输入文件中读取的两个实数
// 使用while循环从输入文件中读取数据,直到到达文件末尾(EOF)
while (fscanf(in, "%lf %lf", &a, &b) != EOF) { // fscanf函数从in所指文件中读取格式化的输入,并存储到a和b中,直到到达文件末尾或格式化输入结束
// 使用fprintf函数将a和b的和写入输出文件,保留两位小数,并换行以表示每个结果的结束
fprintf(out, "%.2lf\n", a + b);
} // BatchAdd函数定义结束
}