c++ - 使用 for 循环填充向量列表
问题描述
我正在做一个练习,我必须创建一个包含向量名称和向量年龄的 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),输入 key,然后按 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';
}
解决方案
推荐阅读
- sql-server - 动态 SQL Where 条件,在 Powershell 脚本中
- html - 如何在 Lightbox 中使用 WebP 图片?
- javascript - 如何使用css将邮票文本放入发票中
- flutter - 颤振:如何更改网格视图内的背景颜色?
- python - 将列值设置为熊猫中组的平均值
- c++ - 是否有解决方案可以从“无效转换 int* 到 int”C++ 中逃脱?
- python-3.x - 在 TensorFlow 中生成 .record 文件时出错
- reactjs - 如何单击使用本机反应的功能呈现的按钮?
- git - 主分支有时在开发分支之前
- reactjs - 实现 css datepicker 样式在表单内无法正常工作