Форум: Форум C++Разное
Новые темы: 00
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ввод строки используя cin
 
 автор: Bloke   (06.12.2007 в 21:04)   письмо автору
 
 

Я столкнулся с проблемой ввода строки используя операто cin>>something;
Проблема в том что он считывает строку до первого пробела или символа конца строки.
я использовал cin.getline(buffer, sife_of_buffer);
но возникла другая проблема, консольное окно не останавливает ход программы для того чтобы ввести данные, прога тупо проскакивает этот оператор. Почему??

Вот код:

void menu()
{
     cout<<"Press required key to proceed\n";
     cout<<"1 - Create a new group\n";
     cout<<"2 - Show/edit all created groups\n";
     cout<<"0 - Exit\n";
}

void main()
{     
     char st_name[30], gr_name[10];  
     SetConsoleOutputCP(1251);
     
     for(;;)
     {     
          menu();
  cin>>select;
          
          switch(select)
          {

          case 1:
               
               cout<<"\nInput name of being created group"<<endl<<flush;
               cin.getline(gr_name, sizeof(gr_name)); // тут прога, по идеи, должна дать ввести данные, но оператор выполняется без остановки хода программы
               cout<<gr_name<<endl;
               break;
          
          case 2: 
                                  //another part
  break;
          case 0: 
  goto exit;
  break;
          defaultbreak;          
          }
  //getch();
  putch('\n');
     }
exit: ;
}

  Ответить  
 
 автор: dima_s_d_s   (07.12.2007 в 04:14)   письмо автору
 
   для: Bloke   (06.12.2007 в 21:04)
 


#include <iostream>
#include <conio.h>
using namespace std;

void menu()
{
     cout<<"Press required key to proceed\n";
     cout<<"1 - Create a new group\n";
     cout<<"2 - Show/edit all created groups\n";
     cout<<"0 - Exit\n";
}
#define num 10
void main()
{     
     char st_name[30], gr_name[num];  
     SetConsoleOutputCP(1251);
int select=0;     
     for(;;)
     {     
          menu();

  cin>>select;
             cin.ignore(1);
          switch(select)
          {

          case 1:
               
               cout<<"\nInput name of being created group"<<endl<<flush;
               cin.getline(gr_name, num); 
               cout<<gr_name<<endl;
               break;
          
          case 2: 
                                  //another part
  break;
          case 0: 
  goto exit;
  break;
          defaultbreak;          
          }
  //getch();
  putch('\n');
     }
exit: ;
}

  Ответить  
 
 автор: Bloke   (07.12.2007 в 10:45)   письмо автору
 
   для: dima_s_d_s   (07.12.2007 в 04:14)
 

Спасибо, это работает!
В .NET все проще с пространством имен System :).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования