открытие файла для чтения на с++
Делал задание по с++, но почему-то программа не может открыть файл. Прошу помочь разобраться, код и задание прилагаю. [![task][1]][1]
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
struct Record {
int number;
string text;
};
// Функция сравнения для сортировки записей
bool compareRecords(const Record& r1, const Record& r2) {
return r1.number < r2.number;
}
int main() {
string inputFileName, outputFileName;
// Запрос имен входного и выходного файлов с консоли
cout << "name in: ";
cin >> inputFileName;
cout << "name out: ";
cin >> outputFileName;
// Открытие входного файла
ifstream inputFile;
inputFile.open(inputFileName);
if (not(inputFile)) {
cerr << "e op in: " << inputFileName << endl;
return 1;
}
// Чтение записей из файла
vector<Record> records;
Record tempRecord;
string line;
while (getline(inputFile, line)) {
istringstream iss(line);
if (!(iss >> tempRecord.number >> tempRecord.text)) {
cerr << "e read" << endl;
return 1;
}
records.push_back(tempRecord);
}
// Закрытие входного файла
inputFile.close();
// Сортировка записей
sort(records.begin(), records.end(), compareRecords);
// Открытие выходного файла
ofstream outputFile(outputFileName);
if (!outputFile) {
cerr << "e op: " << outputFileName << endl;
return 1;
}
// Запись упорядоченного списка в новый файл
for (const auto& record : records) {
outputFile << record.number << " " << record.text << endl;
}
// Закрытие выходного файла
outputFile.close();
cout << "succesful: " << outputFileName << endl;
return 0;
} [1]: https://i.stack.imgur.com/OSjka.jpg
Ответы (1 шт):
Автор решения: Абдурахман
→ Ссылка
// Чтение записей из файла
vector<Record> records;
Record tempRecord;
string line;
for(int i = 0; getline(inputFile, line); i++) {
//istringstream iss(line);
// if (!(iss >> tempRecord.number >> tempRecord.text)) {
// cerr << "end read" << endl;
// break;
// }
tempRecord.number = i;
tempRecord.text = line;
//iss >> tempRecord.number >> tempRecord.text;
records.push_back(tempRecord);
}
я отредактировал часть кода отвечающая за чтение файла и копирование его информации в массив путем изменения цикла с 'while' на 'for'