我正在做一个练习,其中我必须创建一个由向量名称和向量年龄组成的Name_pairs类,并根据用户的输入来填充它们。
我的main()如下:
'''
int main() {
Name_pairs np;
np.read_names();
np.read_ages();
np.print();
return 0;
}
'''
到目前为止,我的书已经教我为此使用一个for循环,并按ctrl + z退出。这是我到目前为止的代码
'''
void Name_pairs::read_names(){
std::cout <<"Enter a list of names: ";
for(std::string nl; std::cin>>nl;)
name.push_back(nl);
}
'''
然后我要输入我的名字(例如Bob,Linda,Gene),输入密钥,然后按ctrl + z退出循环。我预期会发生的事情是,我将返回main(),然后使用类似的代码调用下一个函数read_ages()
'''
void Name_pairs::read_ages(){
std::cout<<"Enter a list of ages: ";
for(double uages; std::cin>>uages;)
age.push_back(uages);
}
''' 但是,我的程序似乎以ctrl + z终止。我的问题确实是: 1.这种for循环的好习惯吗?还是只是为了让初学者了解其他观点而提出? 2.为什么输入ctrl + z后我的程序似乎会终止?
编辑:抱歉,下面是我到目前为止拥有的完整程序。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Name_pairs{
public:
void read_names();
void read_ages();
void print ()const;
void sort();
private:
vector <string> name;
vector <double> age;
};
int main() {
Name_pairs np;
np.read_names();
np.read_ages();
np.print();
return 0;
}
void Name_pairs::read_names(){
cout <<"Enter a list of names: ";
for(string nl;cin>>nl;)
name.push_back(nl);
}
void Name_pairs::read_ages(){
cout<<"Enter a list of ages: ";
for(double uages; cin>>uages;)
age.push_back(uages);
}
void Name_pairs::print()const{
for(size_t i=0;i<name.size();++i)
cout<<name[i] << "age, "<<age[i]<<'\n';
}