C++中怎样在一个程序里读取两个txt文件,并分别赋给两个数组,希望能详细些? 30
#include <stdio.h>
#include"string.h"
#include <stdlib.h>
#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;
}
要读取的txt文件内容是什么样子不太清除,所以直接给出一些建议吧。
建议你这样试试看:
通过fstream 去读取文件
ifstream inFile1("books.txt",ios::in|ios::binary);
if(!inFile1) {
cout << "error" <<endl;
}Book book; // 举个例子用Book类 示范
while(inFile1.read((char *)&book, sizeof(Book))) { //一直读到文件结束//这里给数组赋值
}
inFile1.close()关闭文件。
注意事项:
打开文件后需要检测inFile 是否为空,否则会出现异常。另外结束要关闭文件.