Мне нужна помощь в исправлении этой программы на C++, которая не записывает вторую запись в один файл в другой файл. Кажется, что запись первой записи только в файл, а затем после этого цикл while завершается, хотя конец файла не был достигнут. Вот программа:Программа не будет читать первую запись в файле
indata.open("income.dat", ios::out | ios::binary);
while (true)
{
indata.ignore();
indata.getline(person[count2].name, NAMESIZE);
indata >> person[count2].income;
indata >> person[count2].rent;
indata >> person[count2].food;
indata >> person[count2].utilities;
indata >> person[count2].miscell;
if (count2 == 0)
{
outdata << setw(20) << "Name"
<< setw(10) << "Income"
<< setw(10) << "Rent"
<< setw(10) << "Food"
<< setw(15) << "Utilities"
<< setw(15) << "Miscellaneous"
<< setw(10) << "Net Money" << endl << endl;
}
outdata << setw(20) << person[count2].name
<< setw(10) << person[count2].income
<< setw(10) << person[count2].rent
<< setw(10) << person[count2].food
<< setw(15) << person[count2].utilities
<< setw(15) << person[count2].miscell
<< setw(10) << person[count2].net << endl;
count2++;
}
outdata.close();
условия я испытал в то время цикла включают, indata
, !indata.eof()
и indata.good()
.
Любые мысли? Благодарю.
Попробуйте удалить весь код, не связанный с проблемой. [Я серьезно] (http://stackoverflow.com/help/mcve). – Beta
И как общее наблюдение. прекратите предполагать, что ваш IO * работает *. Этот код может провалиться во множестве мест, и все же вы идете так, как будто ничего не произошло. * Проверьте свои вызовы ввода-вывода *. – WhozCraig
@beta Хотя я считаю, что весь код был релевантным, я отредактировал его, чтобы включить ту часть, где, как я думаю, проблема возникает. – jshapy8