2016-01-13 60 views
-3

这是我打印出来的文本文件如何将文本文件保存到数组中?

FILE *file; 
char array[200]; 

file = fopen("test.txt", "r"); 

fread(array,1, 200, file); 
printf("\n%s", array); 
fclose(file); 

相反,我想将文本文件保存行到一个数组这样我就可以打印出与阵列的文本文件。

我只能使用fopen,fprintf,fwrite,fscanf,fread,fseek,fclose。不是fget。

如何将文本文件行保存到数组?

+1

不要忘记检查电话的工作。不要忘记保存'fread()'的返回值;你需要知道要写多少字节。您需要使用更复杂的'printf()'格式,因为您读取的字符串不会以null结尾。如果你有'int nbytes = fread(...);'那么你需要'printf(“%*。* s \ n”,n,n,数组)'来写入数据。请注意,换行符在输出行的末尾,而不是开头。文本文件有多大?少于200个字符或更大?你需要在内存中的整个文件? –

回答

1

使用fscanf您可以读取文件中的数据并将其存储在2-d char阵列中。像这样 -

char array[20][200];    // array to hold data in file 
int i=0; 
file = fopen("test.txt", "r"); 
if(file==NULL){     // error in opening file 
     //handle it 
} 
while(fscanf(file,"%199[^\n]%*c",array[i])==1){ 
     // handle your data 
     i++;    // increment index 
} 
0

你也可以做一个mmap,然后处理反映文件内容的内存。在这种情况下不需要明确的“加载”。男人mmap。

相关问题