2015-02-10 49 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方法将名称添加到用户输入的矢量中。

相关问题