C++中怎样在一个程序里读取两个txt文件,并分别赋给两个数组,希望能详细些?

2024-11-08 19:26:43
推荐回答(2个)
回答1:

#include

#include"string.h"

#include

#define N 100000

int main() {

/*_________________________________________________*/

    FILE *fp,*fl;

    char b[N + 1],a[N+1];

    //判断文件是否打开

    if ( (fp = fopen("D:\\文件2.txt", "rt")) == NULL||(fl = fopen("D:\\文件1.txt", "rt")) == NULL )/*这里D:\\ 文件1和2.txt 是路径;读取D盘下,名为(文件1和2)的文本文件*/ 

        puts("文件读取失败!\n");

        exit(0);

    }

    else

    {

    puts("文件读取成功");

    puts("开始计算");

    printf("\n");

    //循环读取文件1的每一行数据储存到a数组中 

    while( fgets(a, N, fl) != NULL )

{

/*__________________________________________*/

printf("以下是文件1的内容:\n");

printf("%s\n\n",a); 

/*___________________________________________*/   

    }

    //循环读取文件2的每一行数据储存到b数组中 

    while( fgets(b, N, fp) != NULL )

{

/*__________________________________________*/

printf("以下是文件2的内容:\n");

printf("%s\n",b); 

/*___________________________________________*/   

    }

   

    //结束关闭文件

    fclose(fp);

    fclose(fl);

    return 0;

}

回答2:

要读取的txt文件内容是什么样子不太清除,所以直接给出一些建议吧。

建议你这样试试看:

  1. 通过fstream 去读取文件

    ifstream inFile1("books.txt",ios::in|ios::binary);
    if(!inFile1) {
    cout << "error" <}

    Book book; // 举个例子用Book类 示范
    while(inFile1.read((char *)&book, sizeof(Book))) { //一直读到文件结束

    //这里给数组赋值

    }

  2. inFile1.close()关闭文件。 

注意事项:

   打开文件后需要检测inFile 是否为空,否则会出现异常。另外结束要关闭文件.