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

如何在C++程序中实现让用户自主选择要打开的txt文本文件

C++ 文件选择功能实现方法

你可以通过增加用户交互逻辑,动态生成要打开的文件名替换原有硬编码的固定文件名即可实现需求,以下是适配三个固定txt文件的修改后代码:

#include <iostream>
#include <fstream>
#include <string> // 新增头文件用于处理文件名

using namespace std;
int main()
{
    ifstream inputFile;
    string fileName;
    int choice;

    double sum = 0,
        total = 0,
        average,
        number;

    // 新增用户选择逻辑
    cout << "请选择要读取的数值文件:" << endl;
    cout << "1 - 1nums.txt" << endl;
    cout << "2 - 2nums.txt" << endl;
    cout << "3 - 3nums.txt" << endl;
    cout << "请输入对应文件的序号:";
    cin >> choice;

    // 根据用户选择匹配文件名
    switch(choice) {
        case 1:
            fileName = "1nums.txt";
            break;
        case 2:
            fileName = "2nums.txt";
            break;
        case 3:
            fileName = "3nums.txt";
            break;
        default:
            cout << "输入序号无效,程序退出。" << endl;
            return 1;
    }

    // 替换原有硬编码文件名,用c_str()兼容低版本C++标准
    inputFile.open(fileName.c_str());

    if (inputFile.fail())
    {
        cout << "Error opening the file." << endl;
    }
    else
    {
        while (inputFile >> number)
        {
            sum += number;
            total++;
        }
        // 新增空文件判断,避免除以0报错
        if (total == 0) {
            cout << "文件内无有效数值,无法计算。" << endl;
        } else {
            average = sum / total;
            cout << "Sum  : " << sum << endl;
            cout << "Total: " << total << endl;
            cout << "Average: " << average << endl;
        }
    }
    inputFile.close();
    cout << "File closed. Program Ended." << endl;

    return 0;
}

拓展方案(支持任意文件名输入)

如果你的文件名不固定,也可以直接让用户输入完整文件名,只需把上述代码里的选择序号逻辑替换为以下内容即可:

cout << "请输入要读取的完整文件名:";
cin >> fileName;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:06:03