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

Kidman

Турист
: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

Турист
Судя по всему, просто возвращает строкой данные из потока, пропуская лидирующие пробелы.
 

Kidman

Турист
спасибо, уже более понятно... а поподробнее можно, просто хочется не только понять, но и разобратся, так как некоторые моменты мне так и непонятны... если конечно не сложно
 

AAlexander

Турист
Э-эх, молодежь :)

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 итак вернет кол-во символов до первого нуля.
 

GI80

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