|
|
|
| Я столкнулся с проблемой ввода строки используя операто 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;
default: break;
}
//getch();
putch('\n');
}
exit: ;
}
|
| |
|
|
|
|
|
|
|
для: 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;
default: break;
}
//getch();
putch('\n');
}
exit: ;
}
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(07.12.2007 в 04:14)
| | Спасибо, это работает!
В .NET все проще с пространством имен System :). | |
|
|
|