2016-01-13 84 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。

相關問題