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

C++读取countries.txt文件,求助实现输出最小面积国家

实现最小面积国家的输出功能

要完成最小面积国家的输出,核心是解决最小面积初始值的初始化问题——不能像最大面积那样设为0(因为所有国家的陆地面积都是正数,0会比实际面积小,导致最小面积永远不会被更新)。以下是修改后的完整代码:

#include <iostream>
#include <fstream>
#include <string>
#include <climits>  // 新增:用于获取int类型的最大值INT_MAX

using namespace std;

int main()
{
    ifstream ins;   // 声明输入文件流对象
    
    ins.open("/Users/daneided/Desktop/countries.txt");  // 打开文件
    if (ins.fail()) {     // 检查文件是否打开失败
        cout << "Error opening file";
        return -1;
    }
    
    string biggestCountry;   // 存储最大面积国家名称
    int biggestArea = 0; // 存储最大面积
    
    // 新增:存储最小面积国家的变量
    string smallestCountry;
    int smallestArea = INT_MAX; // 初始化为int的最大值,确保第一个国家的面积一定会更新它
    
    for (int i = 0; i < 5; i++) {   // 读取文件中的5行数据
        string countryName;
        int area;
        ins >> countryName >> area;  // 读取一行中的国家名称和面积
        
        // 更新最大面积逻辑(保留原有代码)
        if (area > biggestArea) {
            biggestArea = area;
            biggestCountry = countryName;
        }
        
        // 新增:更新最小面积逻辑
        if (area < smallestArea) {
            smallestArea = area;
            smallestCountry = countryName;
        }
        
    }
    
    ins.close();   // 关闭文件
    
    // 输出最大面积国家(保留原有代码)
    cout << "Biggest country is: " << biggestCountry <<
    " (" << biggestArea << ") " << endl;
    
    // 新增:输出最小面积国家
    cout << "Smallest country is: " << smallestCountry <<
    " (" << smallestArea << ") " << endl;
    
    return 0;
}

关键修改说明:

  1. 添加<climits>头文件:用来获取INT_MAX,这是int类型能存储的最大值,确保第一个读取到的国家面积一定会比它小,从而完成第一次最小面积的初始化。
  2. 新增最小面积相关变量:smallestCountry存储国家名称,smallestArea存储面积,初始值设为INT_MAX。
  3. 循环内添加最小面积判断:每次读取国家数据后,对比当前面积与smallestArea,如果更小则更新变量。
  4. 添加最小国家的输出语句:在原有输出后,新增最小国家的信息打印。

额外优化建议:

当前代码用固定次数的for循环读取5行数据,如果countries.txt中的国家数量发生变化,代码会失效。可以把循环改成自动读取直到文件结束:

// 替换原有的for循环
string countryName;
int area;
while (ins >> countryName >> area) {
    // 这里保留原有的最大、最小面积判断逻辑
}

这样无论文件里有多少个国家数据,代码都能正确处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:56:04