У меня есть тестовый файл ("InputFile.txt"), сохраненный с некоторой случайной информацией, а также пустой выходной файл ("output.txt"). Когда я отлаживаю программу и проверяю выходной файл, она остается пустой.
Должен ли "output.out" быть "output.txt" (строка 25)? У меня проблемы, потому что у меня есть "InputFile.txt" как cstring в строке 22 в инструкции if? Это правильно? Я как бы потерялся, когда дело доходит до fstream, пожалуйста, помогите.
Мой код:
#include<fstream>
#include<string>
#include<iomanip>
#include<iostream>
using namespace std;
int main()
{
ifstream InputFile;
ofstream OutputFile;
string lastName, firstName, fileName,
line;
int creditHours, state;
int tuition;
bool valid = false;
do{
cout << "Input file name (.txt): ";
cin >> fileName;
if(fileName == "InputFile.txt")
{
InputFile.open("InputFile.txt");
OutputFile.open("output.out");
valid = true;
}
else{
cout << "Invalid file name/type." << endl;
}
}while(valid == false);
OutputFile << "Last Name: " << ' ' << "First Name: " << ' '
<< "Credit Hours: " << ' ' << "Tuition Amount: " << endl;
while(!InputFile.eof()){
getline(cin, line);
InputFile >> firstName >> lastName >> creditHours >> state;
if(state == 1)
{
tuition = (creditHours * 350);
}
else
{
tuition = (creditHours * 570);
}
OutputFile << lastName << ' ' << firstName << ' '
<< creditHours << ' ' << tuition << endl;
}
InputFile.close();
OutputFile.close();
return 0;
}
Попробуй это
ifstream inFile;
ofstream outFile;
и откройте свой входной и выходной файлы, например
inFile.open("InputFile.txt", ios::in);
outFile.open("Output.txt",ios::out);
после этого считывать данные Inputfile и записывать их в выходной файл
while (!inFile.eof()) {
inFile >> firstName >> lastName >> creditHours >> state;
outFile << firstName << " " << lastName<<" "<<creditHours<< " " <<state<<" "<< endl;
}
и применять логику в цикле по-своему
while (!InputFile.eof())
наwhile (getline(cin, line) && InputFile >> firstName >> ... >> state)
.output.txt
то он должен быть.open("output.txt")