Введение
В этом практическом занятии мы научимся считывать числа из файла, а затем суммировать их построчно, выводя результаты в другой файл. Следуя шагам этого руководства, вы научитесь писать программу на C++, которая:
💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал
В этом практическом занятии мы научимся считывать числа из файла, а затем суммировать их построчно, выводя результаты в другой файл. Следуя шагам этого руководства, вы научитесь писать программу на C++, которая:
Создайте новый файл с именем file_sum.cpp
в каталоге ~/project
.
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
типа char
, чтобы хранить имя файла, которое введет пользователь. Затем мы просим пользователя ввести имя файла и сохраняем его в массив 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
, создаем объект stringstream
под названием ss
, который хранит содержимое каждой строки. Затем мы извлекаем каждое число из 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
Вам будет предложено ввести имя файла, который вы хотите обработать. Введите имя и нажмите Enter. Программа прочитает файл, просуммирует числа по строкам и запишет результаты в новый файл с именем 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++.