Я пытаюсь написать функцию, которая принимает имя файла и номер строки и возвращает строку из этой конкретной строки.Проблема в том, что моя функция возвращает строку только тогда, когда она читает последнюю строку файла, а чтение других строк ничего не возвращает.
Вот моя функция: (Мой параметр строки начинается с 0, поэтому 8 на самом деле является 9-й строкой)
string txtRW_readline(string FileName,int Line){
ifstream fin;
fin.open(FileName.c_str());
string txtline;
for(int i = 0; i <= Line ; i++){
getline(fin,txtline);
cout << "Reading line: " << i << endl;
cout << "Result: " << txtline << endl << endl;
}
fin.close();
cout << "Returning: " << txtline << endl;
return txtline;
}
int main(){
cout << txtRW_readline("input.txt",8);
return 0;
}
Вот мой input.txt:
A1
B2
C3
D4
E5
F6
G7
H8
I9
Вот мой вывод: (когда cout << txtRW_readline ("input.txt", 8)) </p>
Reading line: 0
Result: A1
Reading line: 1
Result: B2
Reading line: 2
Result: C3
Reading line: 3
Result: D4
Reading line: 4
Result: E5
Reading line: 5
Result: F6
Reading line: 6
Result: G8
Reading line: 7
Result: H8
Reading line: 8
Result: I9
Returning: I9
I9 <-- This one returns a line
Вот мой вывод: (когда cout << txtRW_readline ("input.txt", 7)) </p>
Reading line: 0
Result: A1
Reading line: 1
Result: B2
Reading line: 2
Result: C3
Reading line: 3
Result: D4
Reading line: 4
Result: E5
Reading line: 5
Result: F6
Reading line: 6
Result: G8
Reading line: 7
Result: H8
Returning: H8
<-- This one returns nothing -->
Может кто-нибудь объяснить мне, почему это происходит и как я могу это исправить?