c语言读取文件问题(二维数组)

如何读取文件夹里的1000组数据(1000组.txt)
c语言方法,读完第一组后完成循环在读取第二组数据

头文件要加入(Stdlib.h),函数中通过fopen()函数打开.txt文件,fopen()需要加入操作方式参数。你读取的是1000组数据,可以用char或者string来保存读取的变量。如果读取的是二维数组,可以用数组来存储。

已经文件名规律的情况下,可以这样写,如果不知道文件文件名的情况下就必须要用遍历目录的方法获取文件名,后者稍微复杂些。下面提供前者的方法,代码仅供参考。

img

img

#include<stdio.h>
#define N 5

int main(int argc, char** argv){
    //首先建立一个二维数组存放1000个文件名,有路径当然也要包含绝对路径,
    //为了方便我只取文件名,假设文件名是这样规则的
    //1.txt 2.txt  3.txt....1000.txt
    char filename[N][256];
    //使用循环存入文件名到数组
    for(int i=0;i<N;i++)
    {   //注意这里引用绝对路径名,若是windows系统请用双反斜杠\\。
        sprintf(filename[i],"/storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/读入多个文件/bin/%d.txt",i+1);
    }
    //建立超大数组存放读入的文件
    static char datas[N][10240];
    int ch;
    FILE *fp;
    for(int i=0;i<N;i++)
    {
        int j=0;
        fp=fopen(filename[i],"rb");
        if(!fp)return -1;
        rewind(fp);
        while(!feof(fp) && (ch=fgetc(fp))!=EOF)
        {
            datas[i][j++]=(char)ch;
        }
        datas[i][j]='\0';
        if(!feof(fp) || ch!=EOF)
        {
            fprintf(stderr,"文件读入出错!");
            return -1;
        }
        fflush(fp);
        fclose(fp);
    }
    //访问读出的数组
    for(int i=0;i<N;i++)
    {
        printf("读到文件%s的内容:\n%s\n\n" ,filename[i],datas[i]);
    }
    return 0;
}