Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Продолжение работы программы после нажания enter (c++)  (Прочитано 1350 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pit2332

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Доброе время суток.
Да, эта тема обсуждалась уже не одну сотню раз, но в моём случае я так и не смог найти решения.
Код: (cpp) [Выделить]
#include <iostream>
#include <stdlib.h>

using namespace std;

void add_new_string(void)
{cout<<"add_new_string"<<endl;}

void search(void)
{cout<<"search"<<endl;}

int main(void)
{
int i,k;
i=0;
cin>>i;
switch (i)
{
case 1: {add_new_string(); cin.get(); break;}
                case 2: {search(); cin>>k; break;}
case 3: {return 0;}
}
}
Никак не могу понять, почему cin.get() не работает. Даже есть поместить его в тело функции. Работает только если находится до switch. И в то же время cin>>k прекрасно работает куда не влепишь.
system("pause") не вариант, т.к. компилирую под linux.
Есть у кого идеи как реализовать продолжение работы в switch по нажатию enter?

Оффлайн WereBeast

  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля

Программирую пропаганду
Windows - в гландах

Оффлайн pit2332

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Спасибо, понял.
Решил проблему так:
Добавил процедуру
Код: (cpp) [Выделить]
#include <limits>

void next(void)
{
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.clear();
cin.get();
}
int main(void)
{
    next();
}

 

Страница сгенерирована за 0.028 секунд. Запросов: 25.