Ниже приведен фрагмент кода, который я написал. Я не включил весь код из своих функций, потому что на данный момент у меня его нет на моем рабочем компьютере. Мне нужно перебирать около 10 строк данных, собирать информацию, а затем выполнять вычисление (calcdata) и выводить в выходной текстовый файл (senddata). Мои функции работают отлично, но они не читаются в первой строке моего текстового документа. Я могу читать первую строку, вычислять первую строку, а затем выводить первую строку.while (infile) loop только считывает первую строку из моего текстового файла
/*
My input file is:
10 0 S Y 100
5 7 S N 50
20 4 D Y 9
11 2 S Y 6
5 1 S N 120
31 5 S N 500
15 3 D N 40
18 4 S N 50
12 0 S N 40
26 7 D Y 200
*/
void getdata (int & adultget, int & childget, char & mealtypeget, char & weekendget, int & depositget, bool & error)
ifstream infile;
ofstream outfile;
int main()
{
infile.open("C:\\input.txt");
outfile.open("C:\\output.txt");
while (infile)
{
getdata(adult, child, mealtype, weekend, deposit, error);
calcdata(adult, child, mealtype, weekend, deposit, adultcost, childcost, totalfood, surcharge, tax, tip, totalparty, discount, totaldue);
senddata(adultcost, childcost, mealtype, weekend, deposit);
}
infile.close();
outfile.close();
return 0;
}
void getdata (int & adultget, int & childget, char & mealtypeget, char & weekendget, int & depositget, bool & error)
{
infile >> adultget >> childget >> mealtypeget >> weekendget >> depositget;
.
.
.
}
Мой входной файл имеет около 10 строк данных, сочетание int и char. Мои функции считывают только первую строку файла. Любая помощь?
Как насчет 'while (! infile.eof())'? –
@faranwath: Нет, плохая практика. Он просто проверяет один из плохих флагов. – deepmax
Код, который вы указали, не содержит причины проблемы. –