Открытие файла для записи или дозаписи текста. Ввод в конец файла дополнительного текста. Вывод содержимое файла на экран

Создание файла и дальнейшая его загрузка с командной строки

//Рассматриваются два способа работы с файлом:

1 При отсутствии файла его создание производится (автоматически, системой) при выполнении записи в текстовый файл. Выполняется оператор

p = fopen(“ путь\имя-файла”, “w”);

2 Файл существует (например dfa21.cpp) и его открытие выполняется с командной строки. Обращение к командной строке можно выполнить двумя способами:

а) ПУСК, ВЫПОЛНИТЬ, ввести путь\bcw, OK – bcw – это bc в Windows

б) ПУСК, ПРОГРАММЫ,…Командная строка, ввести …, Enter

Полный текст обращения имеет вид (для примера):

а) ПУСК, ВЫПОЛНИТЬ, ввести d:\borlandc\bin\bcw, OK – открывается окно Borland C++, File, Open, выделить имя файла dfa21.cpp, 2click – в окне размещается текст программы dfa21.cpp.

б) ПУСК, ПРОГРАММЫ, Стандартные, Командная строка, открывается окно (темное) с мигающим курсором, набрать текст

d:\borlandc\bin\bcw d:\borlandc\bin\dfa21.cpp, Enter –внутри окна Borlandc C++ располагается текст программы файла dfa21.cpp.

 

Ниже приведен пример работы с программой.

ПРОГРАММА ОТЛАЖЕНА ТОЛЬКО ПРИ К=0 !

Обратите внимание, в текст не передается нажатие клавишей перехода с одного языка на другой.

/*File is absent fopen(), fclose() - открытие, закрытие файла

putc()/fputc(), getc()/fgetc() - запись символа в .., считывание символа из файла

fputs(), fgets() - запись строки в .., считывание строки из файла

fseek(), ftell() - установка курсора на заданный байт в файле, возврат позиции курсора

fprintf(),fscanf()- файловый аналог printf(),scanf()

feof(), ferror()- возврат true в конце файла, при ошибке

rewind(), remove()- установка курсора в начало файла, файл стирается

fflush - очищается поток (буфер)

 

r, w, a - чтение, запись, добавка в конец в текстовый файл

rb, wb, ab - "-" в бинарный файл

r+, w+, a+ - открыть, создать, добавить в текстовый файл для чтения и записи, а+ - при отсутствии файла файл создается заново

r+b,w+b,a+b- тоже для бинарного файла

 

Программа отлажена только при к=0 //15

*/

#include <iostream.h>

#include <stdlib.h>

#include <stdio.h>

#include <ctype.h>

#include <string.h>

#include <conio.h> //22

 

int main(/*int argc, char *argv[2]*/)

{ FILE *fp;

char c;

int k, i=0; // При к=1 программа должна запускаться с командной строки

int argc; char *argv[1]; //28

m:printf("Введите k=(0/0) для работы (без/c) командной строки и затем нажмите Enter\n");

scanf(" %1d", &k);

// getch()

switch(k) //33

{ case 0: if((fp=fopen("d:\dfa201.doc","w"))==NULL)

{ printf("Файл не открыт_1\n");

exit(1);

}

break;

/* case 1: if(argc!=2)

{ printf("Не указано имя файла, argc=%d \n", argc);

exit(1);

}

if((fp=fopen(argv[1], "w"))==NULL)

{ printf("Не открывается файл, argv[1]=%d \n", argv[1]);

exit(1);

}

break;

*/ default: printf("Вас просят ввести 0 /*или 1*/\n"); ++i; if(i>=3)exit(1);goto m;

} //49

printf("Текстовый файл d:\dfa201 открыт! Вводите символ\n");

do { c=getche(); // Ввод символа с клавиатуры

putc(c,fp); // запись символа в файл

if (c=='$')break;

printf("\n to finish press symbol $\n");

} while (c != '$'); //55

printf("Ввод символов прекращен!\n\n");

fclose(fp);

getch();

return 0;

} //60

Ниже приведен результат посимвольного ввода текста

 

Компьютерное образование, как никакое, особенно чувствительно к непрерывности. Непрерывное компьютерное совершенствование позволяет пользователю сегодня своими руками создавать свое будущее!

Желаю успеха Вам в этом совершенствовании!

 

Открытие файла для записи или дозаписи текста. Ввод в конец файла дополнительного текста. Вывод содержимое файла на экран.

 

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>

 

int main(void)

{ FILE *fp;

char str[80];

// a+ - файл dfa201 создается заново

if ((fp=fopen("d:\dfa201.doc","a+"))==NULL)

{ printf("файл не открывается.\n");

exit(1);

}

/* rewind(fp);

while(!feof(fp))

{ fgets(str,79, fp);

printf(" str=%s\n",str);

}

*/

// Ввод дополнительного текста в файл

do { printf(" Введите текст. В конце ввода нажмите Enter\n");

gets(str); //printf(" str=%s\n",str); Вводится строка текста с клавиатуры

strcat(str, "\n"); // Добавлен символ перехода \n

fputs(str, fp); // Запись в конец файла dfa201

} while(*str!='\n');

// Вывод результата на экран

rewind(fp); // Установлен курсор в начало файла

while(!feof(fp))

{ fgets(str, 79, fp); // Построчное считывание текста с файла

printf(str); // Построчный вывод на экран

}

 

return 0;

}