Я пишу функцию, которая должна (если файл уже существует) увеличивать первое число на единицу и добавлять параметры функции в конец файла.
Пример:
- append (4,9);
- append (5,6);
Содержимое файла в 1:
1 \ n 4 \ n 9
Содержимое файла на 2:
2 \ n 4 \ n 9 \ n 5 \ n 6
int append (int obj, int objType) {
ifstream infile;
infile.open("stuff.txt");
if (infile.fail()){
infile.close();
ofstream outfile;
outfile.open("stuff.txt");
outfile << 1 << endl << obj << endl << objType;
outfile.close();
}
else {
int length = 0;
while (!infile.eof()){
int temp;
infile >> temp;
length ++;
}
infile.close();
infile.open("stuff.txt");
int fileContents[length];
int i = 0;
while (!infile.eof()){ /*PROGRAM DOES NOT ENTER HERE*/
infile >> fileContents[i];
i ++;
}
infile.close();
ofstream outfile;
outfile.open("stuff.txt");
fileContents[0] +=1;
for (i = 0; i < length; i++){
outfile << fileContents[i] << endl ;
}
outfile << obj << endl << objType;
}
Программа никогда не входит во второй цикл while, поэтому содержимое никогда не копируется в массив, а затем в файл. Я не уверен точно, в чем проблема или как ее исправить. Любая помощь будет принята с благодарностью. :)