用随机名称填充的字符串数组
Posted
技术标签:
【中文标题】用随机名称填充的字符串数组【英文标题】:String array filled with random names 【发布时间】:2020-08-31 07:02:46 【问题描述】:这是我第一次尝试在 C++ 中使用字符串数组,是的……我被卡住了。
我正在尝试一个让用户输入最大值的小程序。 10 个随机名称。如果用户输入'.'或已输入 10 个 nNames,输入对话框将结束。完成此操作后,所有名称都将被打印出来。
我用向量试过了,但我想我做错了什么......
#include <iostream>
#include <vector>
using namespace std;
int main()
char name;
int i, counter;
vector<string> namen_vec;
cout << endl << "Eingabedialog von maximal 10 Namen. " << endl;
cout << "Eingabe kann fruehzeitig mit '.' beendet werden. " << endl;
cout << "--------------------------------------------------" << endl << endl;
counter = 0;
do
cout << "Eingabe Name: ";
cin >> name;
namen_vec.push_back(name);
counter++;
while (name != '.' && counter <= 9);
for (int i = 0; i < namen_vec.size(); i++)
cout << namen_vec[i] << endl;
return 0;
也许有人有一两个建议?
【问题讨论】:
char name
是单个字符,你想要一个std::string name
什么您显示的代码“错误”?你期望什么行为?你得到什么行为?请花一些时间刷新the help pages,获取SO tour,阅读How to Ask,以及this question checklist。最后请记住如何edit您的问题。
你应该使用 std::string 类型来解决你的问题。
【参考方案1】:
首先,您已将变量name
声明为char
,但您的容器vector
namen_vec
接受string
。尽管如此,程序还是不会编译成功,因为下面这行
while (name != '.' && counter <= 9);
因为name
将是一个字符串,那么您必须将其更改为
while (name != "." && counter <= 9);
【讨论】:
请对代码使用code
格式,而不是粗体文本。见***.com/editing-help以上是关于用随机名称填充的字符串数组的主要内容,如果未能解决你的问题,请参考以下文章