Тема: Як повернути вказівник fstream на початок файлу?
Вітаю вас форумчани!
Я маю функцію, що перевіряє весь файл, доки не досягне EOF.
while ( (character = fpointer.get()) != EOF ) {
if (character == '/') {
if ( (character = fpointer.get()) == '/') { // There is a comment
// Go to end of a line
while( ((character = fpointer.get()) != '\n') && (character != EOF)) { }
if (character == EOF) {
break;
}
} else { // There is line, started by '/'
while( ((character = fpointer.get()) != '\n') && (character != EOF)) { }
if (character == '\n') {
number_of_strings++;
} else if (character == EOF) {
number_of_strings++;
break;
}
}
} else if (isalpha(character)) { // There is a name
while( ((character = fpointer.get()) != '\n') && (character != EOF)) { }
if (character == '\n') {
number_of_strings++;
} else if (character == EOF) {
number_of_strings++;
break;
}
}
}
Після неї мені знову треба перевіряти файл із самого початку. Я знаю, що є функція seekg(). Однак вона не працює. Я думаю, що це пов’язано із тим, що при досягненні EOF виставляються прапорці eofbit і failbit.
Я зробив так:
// return pointer to the start of the file
fpointer.close();
fpointer.open(file, ios::in);
Я хотів спитати чи це нормально, чи все ж таки треба повертати покажчик на початок файлу?