讀到這裏是我的代碼:從標準的C++
...
...
do
{
cin >> command;
switch(command)
{
case 'i':
cin >> key >> nome >> idade >> endereco;
count++;
pessoas = (Pessoa **) realloc(pessoas, count*sizeof(Pessoa *));
pessoas[count-1] = new Pessoa(key, nome, idade, endereco);
bTree->add(pessoas[count-1]);
break;
case 's':
cin >> key;
toSearch = (Pessoa *) bTree->search(key);
if(toSearch == NULL)
{
cout << "-1" << endl;
}
else
{
cout << key << endl;
cout << toSearch->getNome() << endl;
cout << toSearch->getIdade() << endl;
cout << toSearch->getEndereco() << endl;
}
break;
case 'e':
done = true;
break;
}
} while(!done);
...
...
我有一個「菜單」,當我進入i
,它將在B樹插入,s
將搜索和e
將退出程序。
的問題是,當我打i
插入,我得給四個參數:
- (INT)鍵;
- (字符串)名稱;
- (int)年齡;
- (字符串)地址;
當我給一個內部有e
字符的名字(例如「James」)時,它將退出程序。
如何避免command
讀取標準輸入緩衝區,而我在開關上讀取它?
樣品輸入:
i
1
Joao da Silva 1
11
Rua 2, 3
i
2
Joao da Silva 2
12
Rua 4, 6
s
1
s
7
e
感謝。
你不使用'的std :: VECTOR'爲'pessoas'任何理由嗎? – Deduplicator
這與我的問題有什麼關係? 如果我只需要realloc,爲什麼會浪費堆棧? –
還沒有發現任何錯誤,只是想知道爲什麼你不在那裏寫慣用的C++。 – Deduplicator