2012-11-21 2 views
0

Я используювозникли проблемы с вызовом GetLine (CIN, ул) в цикле в то время как

getline(cin , inputStr); // where string = inputStr; 

принимать входные данные от пользователя строкового типа. Код работал отлично. Но теперь, как-то, в замкнутом цикле, это не называется. То есть, компилятор, похоже, пропускает эту часть.

Но cin >> str один работает отлично. Какие-либо предложения?


Код с комментарием:

int num, choice; 
string inputStr=""; 
while(1) 
{ 
    cout<<"1) Search \n"; 
    cout<<" EXIT\n"; 
    cout<<"Choose your choice : "; 
    cin >> choice; 
    switch(choice) 
    { 
    case 1: 
     cout<<"word for search\n"; 
     getline(cin, str); 
     cout<< str <<endl; 
     return 0; 
     //just checking whether this commands work or not. 
    } 
    else 
    { 
     return 0; 
    } 
    .......// there is 300 lines of code still there 
+1

- это код 'конфиденциальный' .. вам нужно указать код, который вы используете – Anirudha

+0

Прошу прощения, я не могу. Но есть ли какие-либо другие команды, чтобы взять строку в качестве входа от пользователя ???? – Terrenium

+0

Откуда вы знаете, что компилятор пропустил эту часть? – nairdaen

ответ

3

Проблема заключается в том, что cin >> choice; оставляет символ новой строки во входном потоке так getline(cin, str); немедленно возвращается из-за этой новой строки.

Попробуйте добавить cin.ignore(); после использования cin >> choice;, чтобы использовать символ новой строки.

+0

Это сработало ..... Спасибо loooooottttttttt ....... !!!! – Terrenium

Смежные вопросы