Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Можно ли заменить cin.get(ch)?


Автор: Totroc 29.5.2012, 16:41
Возник такой вопрос, а можно ли заменить cin.get(ch) в for (int i = 0; cin.get(ch); ++i), как-то по другому, и если да, то как тогда изменится цикл for({здесь})
Код



void CinList(List *ls)     //функция для ввода данных в список
{
str = "";

for (int i = 0; cin.get(ch); ++i)    
{
if (ch == '.')
{
ls->addToList(str);
str = "";
i = 0;
break;
}

if (ch == ' ')
{
ls->addToList(str);
str = "";
i = 0;
}

if (ch != ' ') str = str + ch;

}
}

Автор: borisbn 29.5.2012, 18:31
Код
for (int i = 0; cin.good(); ++i)    
{
    cin.get( ch );
    if ( cin.good() && ch == '.')
    {
        ls->addToList(str);
        str = "";
        i = 0;
        break;
    }
}


Автор: Totroc 29.5.2012, 19:04
borisbn, Спсибо конечно) но я имел ввиду, как вообще избавиться от такой конструкции? или ввод строки для двусвязного списка без этого никак?

Автор: bsa 30.5.2012, 18:03
Код
std::getline(std::cin, str);

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