2016-01-13 4 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. Не фет.

Как сохранить строки текстового файла в массив?

+1

Не забудьте проверить работу звонков. Не забудьте сохранить возвращаемое значение из 'fread()'; вам нужно знать, сколько байтов писать. Вам нужно использовать более сложный формат 'printf()', потому что прочитанная строка не будет заканчиваться нулем. Если вы получили 'int nbytes = fread (...);' тогда вам нужно 'printf ("% *. * S \ n ", n, n, array)' для записи данных. Обратите внимание, что новые строки идут в конце выходной строки, а не в начале. Насколько большой текстовый файл? Менее 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.

Смежные вопросы