Как я могу позволить пользователю ввести две команды в одной строке на cmd ?
Привет,
Я пытался написать код, который позволяет пользователю вводить некоторые команды на экране cmd.
Проект заключается в добавлении узлов с данными в связанный список . данные вводятся пользователем, набирающим "add" и за ним следует число, но другая информация об узле должна быть введена с помощью "set - номер узла-имя переменной - ее значение ",
Я пытался, но я не мог позволить им быть в одной линии, как это:
> Добавить 0324782012
(создайте новый узел с номером = 0324782012)
> set 0324782012 title Data Structures Using C++
(указать название узла 0324782012 для “структур данных
es с использованием C++”).
Узел имеет номер int и заголовок строки .
не могли бы вы пожалуйста помочь ?
Что я уже пробовал:
int main(){ Node* node =NULL; string line,line2; while(getline(cin, line)){ istringstream command (line); string cmd; command >> cmd; if(cmd == "add") { int x; command >> x; add(&node,x); cout<<"The node with number "<<node->number<<" has been added."<<endl; } else if(cmd == "set") { Node* p=node; int x; command >> x; while (p!=NULL){ if (p->number==x){ while ( getline(cin, line2) ){ istringstream command_in (line2); string cmd_in; command_in>>cmd_in; if(cmd_in == "title"){ string y; command_in >> y ; title(&p,y); break; } }break;} p=p->next; } else cout << "Invalid Command" << endl; } }
[no name]
Посмотрите на аргументы командной строки здесь http://www.cprogramming.com/tutorial/lesson14.html
Richard MacCutchan
Почему бы просто не сказать пользователю, что несколько команд должны быть разделены каким-то управляющим символом (точка с запятой была бы хорошим выбором)? Все, что ваша программа затем должна сделать, это разделить входные данные вокруг этих символов и обработать каждую подстроку как команду.