除我皆佬丶 2022-04-17 19:43 采纳率: 100%
浏览 133
已结题

C++实现读取一个文件夹下所有文件内容(例如txt等),目前不明白怎么依次打开每个文件

问题遇到的现象和发生背景

img


如上,一个文件夹中有多个文件,想要依次打开每一个文件(不需要手动输入每个文件的文件名,输入一个文件夹的路径即可),并读取其中的内容

操作环境、软件版本等信息
尝试过的解决方法

自己尝试了一些代码

#include<io.h>
#include<iostream>
#include<fstream>
#include<vector>
#include<string.h>
#include<string>
using namespace std;

//int fileread(string dir,vector<string>filename)
//{
//
//}

int main()
{
    ifstream infile;
    ofstream outfile;
    int i = 0; //保存文件数量
    struct _finddata_t fileinfo;
    long fHandle;
    string fileName[80];
    //string dir;
    cout << "请输入文件路径" << endl;
    //cin >> dir;
    //vector<string>fileName;        //保存文件名
    if ((fHandle = _findfirst("E:\\multifile\\*.txt", &fileinfo)) == -1L)
    {
        cout << "当前目录下无文件" << endl;
        return 0;
    }
    else
    {
        do
        {
            fileName[i] = fileinfo.name;
            i++;
        } while (_findnext(fHandle, &fileinfo) == 0);
    }
    /*for (int j = 0; j < i; j++)
    {
        cout << fileName[j] << endl;
    }*/
    for (int j = 0; j < i; j++)
    {
        infile.open("E:\\multifile\\fileName[i]")
    }
    return 0;
}


在45行处怎么修改可以实现呢?因为在引号里面那个fileName[i]的话就会识别为字符串饿了

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 关注

    test.exe * 不一定支持中文路径

    
    #include <fstream>
    #include <iostream>
    
    int main(int argc, char *argv[])
    {
        std::ifstream test;
        char a;
        for (int i = 1; i != argc; ++i)
        {
            test.open(argv[i]);
            test >> a;
            std::cout << a << std::endl;
            test.close();
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月17日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度