You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

作业需求:如何从文件读取数据到三个并行数组?

作业:读取文件数据到三个数组中

看起来你正在完成一个读取文件数据并拆分到对应数组的作业,我来帮你完善这个实现~

需求回顾

  • 要处理的文件包含3列数据:
    1. 字符串类型的国家代码(2位字符)
    2. 整数类型的人口数
    3. 字符串类型的国家全称(可能包含空格)
  • 需要将这三列分别读取到三个对应类型的数组中

文件内容示例

AU 20090437 Australia
BR 186112794 Brazil
BU 7262675 Bulgaria
CA 32805041 Canada
CN 1306313812 China
DO 8950034 Dominican Republic

代码实现思路与完整示例

你已经写了函数的开头void readCntrData(string [], int []...,这里我基于C++给出完整的实现,核心是注意国家全称可能包含空格,不能直接用cin读取,需要用getline配合处理:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

// 假设我们提前知道最多有多少个国家,或者可以先统计行数
const int MAX_COUNTRIES = 100;

void readCntrData(string countryCodes[], int populations[], string countryNames[], int& count) {
    ifstream inputFile("countries.txt"); // 替换成你的文件名
    if (!inputFile.is_open()) {
        cerr << "无法打开文件!" << endl;
        count = 0;
        return;
    }

    count = 0;
    string code;
    int pop;
    string name;

    // 先读取国家代码和人口,再读取剩余的国家名称
    while (inputFile >> code >> pop) {
        // 忽略读取代码和人口后留下的换行符
        inputFile.ignore();
        // 读取整行作为国家名称(包含空格)
        getline(inputFile, name);
        
        // 将数据存入数组
        countryCodes[count] = code;
        populations[count] = pop;
        countryNames[count] = name;
        count++;

        if (count >= MAX_COUNTRIES) {
            cerr << "数组容量不足,已停止读取更多数据!" << endl;
            break;
        }
    }

    inputFile.close();
}

// 测试用例
int main() {
    string codes[MAX_COUNTRIES];
    int pops[MAX_COUNTRIES];
    string names[MAX_COUNTRIES];
    int count;

    readCntrData(codes, pops, names, count);

    // 输出读取到的数据验证
    for (int i = 0; i < count; i++) {
        cout << "代码:" << codes[i] << " | 人口:" << pops[i] << " | 名称:" << names[i] << endl;
    }

    return 0;
}

关键注意点

  • 处理包含空格的国家名称时,不能直接用cin >> name,因为cin遇到空格就会停止读取,所以要用getline来读取整行
  • 读取完code和pop后,需要用inputFile.ignore()跳过它们后面的换行符,否则getline会读取到空行
  • 建议传入一个count参数来记录实际读取到的国家数量,避免数组越界

内容的提问来源于stack exchange,提问作者Mattew1994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:40:45