Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > проблема с getline


Автор: pablo 26.5.2005, 10:55
Есть код:
Код

cout << "Insert name of the film " << endl;
cin.getline(filmoPavadinimas, sizeof(filmoPavadinimas), '\n');


не срабатывает getline, т.е строка(массив из символов) всегда пустая, может кто знает почему может случится такое ?
И предложит возможные методые решения данной проблемы ?

Заранее брлагодарен smile

Автор: Code Magister 26.5.2005, 11:33
Цитата(pablo @ 26.5.2005, 10:55)
cin.getline(filmoPavadinimas, sizeof(filmoPavadinimas), '\n');

А разве сразу длина твоей строки не равна 0? Поэтому и считывает 0 символов.
Ну это если тип char*.

Автор: pablo 26.5.2005, 11:39
Исправил, эффект такой же.
Код

cin.getline(filmoPavadinimas, 21, '\n');

Автор: Code Magister 26.5.2005, 11:45
Внатуре не работает.
У меня работет только если брать массив char'ов вместо char*

Автор: Alastis 26.5.2005, 12:33
а такой вариант не подойдет:
Код

std::string filmoPavadinimas;
std::cout << "Insert name of the film " << std::endl;
getline(std::cin, filmoPavadinimas);

Автор: pablo 26.5.2005, 13:06
Это тоже самое, но я уже сам нашёл ошибку, просто до этого я вводил цифру, и гетлайн не срабатывал изза того, что указатель буфера сселался на конец строки о просто ничего не читал.

Автор: WERITAS 28.5.2005, 13:48
pablo

В функции getline третий параметр задается по умолчанию.
Лучше не юзай его вообще!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)