介绍
在本实验中,我们将学习如何从文件中读取数字,然后逐行求和,并将结果输出到另一个文件中。通过本教程的步骤,你将学习如何编写一个 C++ 程序来实现以下功能:
在本实验中,我们将学习如何从文件中读取数字,然后逐行求和,并将结果输出到另一个文件中。通过本教程的步骤,你将学习如何编写一个 C++ 程序来实现以下功能:
在 ~/project
目录下创建一个名为 file_sum.cpp
的新文件。
touch ~/project/file_sum.cpp
为了在 C++ 中处理文件,我们需要在程序中包含 <iostream>
和 <fstream>
库。将以下代码添加到你的 file_sum.cpp
文件中:
#include <iostream>
#include <fstream>
using namespace std;
我们将提示用户输入文件名。将以下代码添加到你的 file_sum.cpp
文件中:
int main()
{
char fileName[50];
cout << "Enter file name: ";
cin.getline(fileName, 50);
ifstream inFile(fileName);
ofstream outFile("sum.txt");
string line;
}
在这里,我们声明了一个字符数组 fileName
来存储用户输入的文件名。然后提示用户输入文件名并将其存储在 fileName
数组中。最后,我们创建了一个 ifstream
对象来打开输入文件 inFile
,以及一个 ofstream
对象来创建输出文件 outFile
。我们还声明了 line
字符串,用于存储输入文件的每一行内容。
现在我们将编写代码来读取文件并逐行求和。对于文件中的每一行,我们将使用 stringstream
对象读取数字,求和并将结果写入输出文件。将以下代码添加到你的 file_sum.cpp
文件中:
while (getline(inFile, line))
{
int sum = 0;
stringstream ss(line);
int num;
while (ss >> num)
{
sum += num;
}
outFile << sum << endl;
}
在这里,我们使用 while
循环读取输入文件的每一行,并将行内容存储在 line
字符串中。然后,我们将 sum
变量初始化为 0
,并创建一个名为 ss
的 stringstream
对象来存储每行的内容。接着,我们从 stringstream
中提取每个数字到 num
,并将每个数字累加到 sum
变量中。在处理完该行的所有数字后,我们将 sum
写入输出文件 outFile
。
最后,我们需要关闭输入和输出文件,并通知用户文件已处理完毕。将以下代码添加到你的 file_sum.cpp
文件中:
inFile.close();
outFile.close();
cout << "File processed successfully." << endl;
return 0;
使用以下命令编译 file_sum.cpp
代码:
g++ file_sum.cpp -o file_sum
在终端中运行以下命令来执行代码:
./file_sum
你将被提示输入要处理的文件名。输入文件名并按回车键。程序将读取文件,逐行求和,并将结果写入名为 sum.txt
的新文件中。
以下是 file_sum.cpp
文件的完整代码:
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
char fileName[50];
cout << "Enter file name: ";
cin.getline(fileName, 50);
ifstream inFile(fileName);
if (!inFile)
{
cerr << "Unable to open file" << endl;
return -1;
}
ofstream outFile("sum.txt");
string line;
while (getline(inFile, line))
{
int sum = 0;
stringstream ss(line);
int num;
while (ss >> num)
{
sum += num;
}
outFile << sum << endl;
}
inFile.close();
outFile.close();
cout << "File processed successfully." << endl;
return 0;
}
在本实验中,我们学习了如何使用 C++ 标准库 <iostream>
和 <fstream>
以及 stringstream
类来读取文件、逐行求和并将结果写入另一个文件。现在你应该能够在 C++ 程序中处理文件并使用许多基本的文件操作。