Помогите в C++

Kidman

Местный
Регистрация
20 Окт 2004
Сообщения
53
Реакции
8
Credits
66
:help2: Что делает эта функция. Никак не могу понять. Если можно то подробнее. Буду очень благодарен.

int GetLine(ifstream finp, char* pline) {
int i = 0;
char c;
while ((c = finp.get()) == ' ') i++;

if (c == EOF) return 0;

finp.seekg(finp.tellg() - 1);
finp.getline(pline, maxl_line - i + 1);
pline[strlen(pline)] = 0;
return 1;
}
 

AAlexander

Местный
Регистрация
9 Дек 2004
Сообщения
71
Реакции
6
Credits
116
Судя по всему, просто возвращает строкой данные из потока, пропуская лидирующие пробелы.
 

Kidman

Местный
Регистрация
20 Окт 2004
Сообщения
53
Реакции
8
Credits
66
спасибо, уже более понятно... а поподробнее можно, просто хочется не только понять, но и разобратся, так как некоторые моменты мне так и непонятны... если конечно не сложно
 

AAlexander

Местный
Регистрация
9 Дек 2004
Сообщения
71
Реакции
6
Credits
116
Э-эх, молодежь :)

while ((c = finp.get()) == ' ') i++;
Подсчет пробелов в начале.

if (c == EOF) return 0;
проверка, есть ли данные после пробелов

finp.seekg(finp.tellg() - 1);
сдвигаем позицию чтения в потоке назад на один символ(на первый символ после пробелов)

finp.getline(pline, maxl_line - i + 1);
копируем из потока строку в pline

pline[strlen(pline)] = 0;
А вот это, имхо, бессмысленно так, как strlen итак вернет кол-во символов до первого нуля.
 

Kidman

Местный
Регистрация
20 Окт 2004
Сообщения
53
Реакции
8
Credits
66
примного благодарен...
 
G

GI80

Kidman, все благодарности в репутацию. Перечитай правила.