2015-02-10 81 views
1

我寫了一個哨兵控制的C++程序,其中您必須輸入一組名稱。你可以輸入多少個名字沒有限制。輸入完名稱後,只需輸入「1」即可退出。這裏是我的代碼:如何創建一個由我之前輸入的元素組成的數組?

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string name; 
    int nofPeople = 0; 
    cout<<"Enter a name or 1 to quit:\n"; 
    cin>>name; 
    while(name != "1") 
    { 
     nofPeople = nofPeople + 1; 

     cout<<"Enter another name or 1 to quit:\n"; 
     cin>>name; 
    } 
} 

現在我想創建一個長度等於「nofPeople」的陣列和我想要的數組中的元素是,我已經進入了名字。我怎麼做?

+0

['std :: vector >'](http://en.cppreference.com/w/cpp/container/vector) – user657267 2015-02-10 10:01:58

+0

您可能還想防止流錯誤和/或eof,以防某些邪惡人物按鍵在eof標記而不是「1」。 – WhozCraig 2015-02-10 10:09:32

回答

0

執行此操作的標準方法是創建一個std::vector<std::string>,您將在接收它們時添加字符串,最後(一旦收集完所有字符串後)將矢量轉換爲數組。但是,除非您還沒有提到一些其他奇怪的要求,否則我會強烈建議您忘記使用數組並繼續在整個程序中處理矢量。

+0

我對C++編程很新,所以我不熟悉std :: vector 。你能告訴我一個如何使用它的例子嗎?謝謝。 – droman07 2015-02-10 10:22:29

+0

當然,我很樂意向你展示一個例子!這裏:http://goo.gl/QloYK9 – 2015-02-10 10:39:23

1

您可以使用std::vector及其push_back方法將名稱添加到用戶輸入的矢量中。

相關問題