2013-11-14 2 views
-1

Я не могу понять, как получить пользовательский ввод и нажать его в мою очередь. Я пытался найти примеры, но ничего не мог найти. Вот часть моего кода:Как я вставляю пользовательский ввод в свою очередь?

queue<int> temp; 

int Temperature::getTemp() 
{ 
//excluded code 
getline(myEngFile1, tempLine1); // assigns "what is temp?" to tempLine1 
cout<<tempLine1<<"\n"; // What is the Temperature? 
//cin>>value; 
temp.push(value); 
return value; 
myEngFile1.close(); 
} 

Как я понимаю так, что я могу читать ввод пользователя и поместить его на моей очереди?

+0

Что не так с этим примером? Как это не работает? – 0x499602D2

+1

Переместите это 'myEngFile1.close();' перед 'return' ничего не будет выполнено. – deepmax

+1

@ 0x499602D2 Это не сработало, потому что я прокомментировал значение «Cin >>», вызывающее im idiot – MoneyMike

ответ

0

Вы можете просто сделать это:

int i; 
cout << "Enter a value to put in queue:"; 
cin >> i; 
temp.push(i); 

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

bool ok = true; 
while(ok) { 
    //get input like above 
    //check if "i" is still ok 
    //if ok the push on queue 
    //else set ok to false 
} 
+0

О, так что я был прав, тогда мне просто нужно расколоть эту линию ... Я, хотя по какой-то причине, делая это, на самом деле не нажимает на нее. – MoneyMike

+1

'cin >> i' - это строка, которая считывает ввод от пользователя в переменную' i'. Строка под ним подталкивает значение 'i' в ваш стек. – CompuChip

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