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

C++如何逐个读取目录下的所有文件并输出文件内容

读取目录下所有文件文本内容的操作指导

原代码中count变量未初始化就执行自增操作,会出现未定义行为,需要修改为int count = 0;;另外用完的目录流记得调用closedir()释放资源,避免资源泄漏。

你已经完成了文件名的收集,后续操作步骤如下:

  • 引入文件操作所需头文件:在代码头部添加#include <fstream>
  • 遍历存储文件名的数组,拼接完整文件路径,打开文件读取内容并打印
  • 操作完成后释放动态申请的文件名数组内存

补充代码示例(放在你原有打印文件名的for循环之后即可)

// 遍历每个文件读取内容
for(int j=0;j<count;j++){
    // 拼接完整文件路径
    string file_path = "text files/" + arr[j];
    // 创建文件输入流
    ifstream in_file(file_path);
    // 判断文件是否打开成功
    if(!in_file.is_open()){
        cout << "无法打开文件:" << arr[j] << endl;
        continue;
    }
    cout << "\n===== " << arr[j] << " 的内容如下 =====" << endl;
    string line;
    // 逐行读取文件内容并打印
    while(getline(in_file, line)){
        cout << line << endl;
    }
    // 关闭文件流
    in_file.close();
}

// 释放动态申请的数组内存
delete[] arr;
// 释放目录流资源
closedir(op);
closedir(dir);

注意事项

  • 如果目录下存在子文件夹,你可以在存入文件名数组前加判断,只处理普通文件:if(contents->d_type == DT_REG) 再存入数组,避免尝试打开文件夹读取内容报错
  • 如果要处理中文路径,Windows环境下可能需要调整编码适配,Linux/macOS环境一般无需额外操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:06:02