У вашего кода довольно много проблем:
ifstream inFile;
inFile.open("numbers.txt", ios::in);
Это не совсем ошибка, но ios::in
является значением по умолчанию для ifstream
, и вы обычно предоставляете имя файла конструктору, что-то вроде этого:
ifstream inFile("numbers.txt");
Тогда у нас есть это:
getline(inFile, name);
inFile >> num;
while (inFile.eof())
while (inFile.eof())
, кажется, имеет логику в обратном направлении - вы хотите читать до тех пор, пока не достигнете конца, а затем выйдите. Остальная часть вашего цикла будет работать (необычно для цикла, в котором в качестве условия используется file.eof()
), но излишне длинна и трудна для чтения.
//create file object and open the file
ofstream outFile;
outFile.open("updatedNumbers.txt", ios::out);
Как и следовало ожидать из предыдущего комментария, ios::out
является значением по умолчанию для ofstream
, и вы обычно присваиваете имя файла конструктору: ofstream outFile("updatedNumbers.txt");
//write the updated numbers to the file
outFile << heading << endl;
outFile << columnHeaders << endl;
outFile << underLines << endl;
heading
, columnHeadders
и underLines
кажутся неопределенными переменными.
for (x=0;x<20; x++)
{
if (int x%2==0)
sample[x] = x+2;
else
sample[x] = x+20;
sample
также кажется неопределенным.
outFile << num[x] << endl;
num
также кажется неопределенным. Возможно, вы хотели, чтобы он был таким же, как sample
? В противном случае, у вас, похоже, нет кода для установки какого-либо конкретного значения перед его записью.
Вероятно, хуже всего этого является тот факт, что ваш заголовок говорит о записи четных чисел из одного файла в другой, но ваш код, похоже, вообще не делает ничего похожего на это.