Rabota_s_t_faylami.ppt
- Количество слайдов: 10
Работа с файлами
Различают 2 типа файлов: текстовые и двоичные. Текстовые файлы – последовательность ASC-символов, разбитых на строки. Каждая строка заканчивается двумя кодами: 13 (‘ ’) и 10 (‘n’). Примеры текстовых файлов: . txt, . bat, . cpp. Для двоичных файлов каждая программа определяет свою структуру.
Функции для работы с текстовыми файлами: 1. fopen(filename, mode)-открытие файла. Возвращает указатель на структуру FILE (при ошибке открытия возвращается 0). filename – путь и имя файла, mode – тип доступа к файлу: “r” – для чтения; “w” – для записи (содержимое существующего теряется); “a” – для записи в конец файла (несущес. создаётся) “r+” – существующий файл для чтения и записи; “w+” – для чтения и записи (существующ. теряется) “a+” – чтение и запись в конец файла (несущ. создаётся).
“t” – текстовый режим, “b” – двоичный режим. По умолчанию – текстовый режим. 2) fclose(f) – закрыть файл (f -указатель на файл); 3)fprintf(f, …)-запись в файл 4) fscanf(f, …) – чтение из файла.
Пример1 Ввести с клавиатуры 5 строк и записать их в текстовый файл. #include “stdafx. h” #include <stdio. h> void main() { char text[82]; int i; FILE *f; printf(“Imya fyla: ”); scanf(“%s”, text); // text –имя файла
f =fopen(text, ”w”); printf(“Vvedite 5 strok: n”); for(i=1; i<6; i++) { scanf(“%s”, text); //text – строка ввода fprintf(f, ”%s”, text); } fclose(f); }
Пример2 Считываются данные с текстового файла и выводятся на экран. #include “stdafx. h” #include <stdio. h> void main() { char text[82]; int i; FILE *f; printf(“Imya fyla: ”); scanf(“%s”, text);
f=fopen(text, ”r”); while(!feof(f)) {fscanf(f, “%s”, text); printf(“%sn”, text); } fclose(f); }
Пример 3 Считать из текстового файла матрицу С[4][4], возвести все её элементы в квадрат и результат записать в выходной файл. #include “stdafx. h” #include <stdio. h> void main() { char text[82]; int i, j, c[4][4]; FILE *f 1, *f 2; printf("Imya vxodnogo fyla: "); scanf("%s", text); f 1=fopen(text, "r"); printf("Imya vixodnogo fyla: "); scanf("%s", text); f 2=fopen(text, "w");
for(i=0; i<4; i++) { for(j=0; j<4; j++) {fscanf(f 1, "%d", &c[i][j]); fprintf(f 2, "%7 d", c[i][j]*c[i][j]); } fprintf(f 2, "n"); } fclose(f 1); fclose(f 2); }
Rabota_s_t_faylami.ppt