C++ 如何使用数组的mutator和accessor函数来显示输出?

C++ 如何使用数组的mutator和accessor函数来显示输出?,c++,arrays,class,C++,Arrays,Class,我很难理解如何通过使用类函数将数组中的变量分配给输出来显示外部文件mycountrydata.txt中的输入。我是否在课堂上做错了什么,或者我是否放置或使用了我的设备,并以错误的方式得到了答案?也请告诉我为什么一定要这样 这是我的外部文件mycountrydata.txt: 中国 1357380000 9596961 法国 66616416 640679 美国 320206000 9857306 南韩 51302044 100210 日本 126434964 377944 可能是这样的: Cou

我很难理解如何通过使用类函数将数组中的变量分配给输出来显示外部文件mycountrydata.txt中的输入。我是否在课堂上做错了什么,或者我是否放置或使用了我的设备,并以错误的方式得到了答案?也请告诉我为什么一定要这样

这是我的外部文件mycountrydata.txt:

中国

1357380000

9596961

法国

66616416

640679

美国

320206000

9857306

南韩

51302044

100210

日本

126434964

377944

可能是这样的:

Country home;
ifstream infile("mycountrydata.txt");
for(int i=0; i<H; i++){
    infile>>homename[i];
    infile>>homepopulation[i];
    infile>>homearea[i];

    home.setName(homename[i]);
    home.setPopulation(homepopulation[i]);
    home.setArea(homearea[i]);

    cout<<"Country: "<<home.getName()<<endl;
    cout<<"Population: "<<home.getPopulation()<<endl;
    cout<<"Area: "<<home.getArea()<<endl<<endl; 
}

您声明了几个包含五个H索引0到4的数组。然后,通过使用H指定要访问的端点,继续访问端点。这将导致未定义的行为。除此之外,我不清楚您在问什么。我想问的是,如何使用我的类从外部文件中分配值以显示在输出中。实际上,您不需要H个homenames/homepopulations/homeareas。您可以在每次迭代中重写一个值。这显示了输出,但我得到的是:国家:中国人口:1地区:0国家:人口:4233695地区:2.70194e-307国家:人口:4285072地区:1.32725e-317国家:人口:240196地区:1.2732e-313无效数字。将人口设置为0。国家/地区:人口:240196地区:1.94589e-307------------------进程在0.009906秒后退出,返回值为0按任意键继续。从外部文件中删除逗号现在输出为:国家:中国人口:1357380000地区:9.59696e+006国家:法国人口:66616416地区:640679国家:联合国人口:0地区:1.32725e-317国家:人口:240196地区:1.2732e-313无效号码。将人口设置为0。国家/地区:人口:240196地区:1.94589e-307------------------进程在0.01407秒后退出,返回值为0按任意键继续。逗号如何影响外部文件?我对C++很陌生,好奇为什么它会这么做。
Country home;
ifstream infile("mycountrydata.txt");
for(int i=0; i<H; i++){
    infile>>homename[i];
    infile>>homepopulation[i];
    infile>>homearea[i];

    home.setName(homename[i]);
    home.setPopulation(homepopulation[i]);
    home.setArea(homearea[i]);

    cout<<"Country: "<<home.getName()<<endl;
    cout<<"Population: "<<home.getPopulation()<<endl;
    cout<<"Area: "<<home.getArea()<<endl<<endl; 
}