在c ++中,我是否可以创建一个循环,要求用户输入信息,然后循环回询问他们是否愿意继续添加信息,直到他们不这样做。并将他们输入的值存储到数组的不同部分?
我一直试图使用while循环,但是会发生什么,如果他们想要添加信息会提示,他们选择是,他们添加它,如果不是,它会将他们输入的内容输入终端,但是如果我这样做的话是两次,我只是覆盖第一个值,任何方法来纠正这个?我对编程很陌生,感谢任何帮助,谢谢你。 (我所拥有的只是一个模板,我知道为什么它不起作用,我也遗漏了预处理器指令
#include <iostream>
#include <string>
using namespace std;
int main()
{
string add;
string name [100];
while (true)
{
cout <<"Would you like to add a name? Yes or No? \n";
getline(cin, add);
if (add == "yes" or add == "Yes")
{
cout<<"Enter a name\n";
getline(cin, name);
}
else if( add == "no" or add == "No")
{break;}
else
{
cout <<"sorry, that is not a valid response"<<endl<<endl;
}
}
cout<<name;
return 0;
}
我认为尝试使用指针可能会起作用,但它们让我感到困惑哈哈。非常感谢任何帮助或建议,谢谢。
答案 0 :(得分:0)
在存储此类信息时使用带有索引的数组名称而不是变量名称
#include <iostream>
#include <string>
using namespace std;
int main()
{
string add;
string name [100];
int index = 0; //Index Location of Array
while (true)
{
cout <<"Would you like to add a name? Yes or No? \n";
getline(cin, add);
if (add == "yes" or add == "Yes")
{
cout<<"Enter a name\n";
getline(cin, name[index]); // write name with index to insert value in particular index
}
else if( add == "no" or add == "No")
{break;}
else
{
cout <<"sorry, that is not a valid response"<<endl<<endl;
}
}
//loop here to output all value of name as mention above
cout<<name;
return 0;
}
答案 1 :(得分:0)
使用std :: vector可以让您的生活更轻松。请参阅代码段:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string add;
string name;
vector<string> names;
while (true)
{
cout <<"Would you like to add a name? Yes or No? \n";
getline(cin, add);
if (add == "yes" or add == "Yes")
{
cout<<"Enter a name\n";
getline(cin, name);
names.push_back(name);
}
else if( add == "no" or add == "No")
{
break;
}
else
{
cout <<"sorry, that is not a valid response"<<endl <<endl;
}
}
// printing contents
for(auto n:names)
cout << *n <<endl;
return 0;
}