Файловый ввод и вывод информации.
Пример:
# include < stdio.h >
void main (void)
{ char str [50];
FILE * rstr, * wstr, * pstr, * astr;
rstr = fopen ("c:my – file. txt","rt");
wstr = fopen ("c:out - file .txt","wt");
pstr = fopen ("prr", "wt");
astr = fopen ("c:out – plus. txt","at");
while(fsanf (rsfr," % S ", str)! = EOF)
{ printf ("Вывод на дисплей: % S\n", str);
fprintf(wstr," % S \ n", str); /* запись файла (прежнее содержимое стирается) * /
fprintf (pstr," % S \ n", str); /* вывод файла на печать * /
fprintf (astr," % S \ n", str);/ * дополнение файла * /
}
fclose (rstr); fclose (wstr);
fclose (pstr); fclose (astr);
}
fclose (rstr); fclose (wstr);
fclose (pstr); fclose (astr);
}
Функции fsanf и fprintf
Функции fsanf и fprintf подобны функциям scanf и printf соответственно и отличаются тем, что в качестве первого дополнительного параметра используется указатель на соответствующий файл.
Функция fscanf () осуществляет форматный вывод из файла – читает символы из файла по указателю (rstr) и интерпретирует их в соответствии с последующей форматной строкой аналогично функции scanf. Список аргументов представляет собой список адресов областей памяти, где будут храниться считанные значения.
Функция fprintf () осуществляет форматный вывод из файла – записывает символы в файлы по указателю (wstr). Эта функция выводит символы и интерпретирует их в соответствии с последующей форматной строкой аналогично функции printf. Cписок аргументов представляет собой список переменных.
Чтение и вывод строк.
Пример:
# include < stdio.h >
void main (void)
{ char str [50];
FILE * fr, * fw;
if ( (fr = fopen (" A : faif.f", "r+") )= = NULL)
{ printf (" файл не открылся");
refurn;}
fgets (str, 49, stdin);
printf ("Вывод строки : % S", str);
printf ("Вывод строки : % S", str);
if ( (fw = fopen ("A:FILEOUT.F", "wt")) = = NULL)
{ printf ("файл не открылся");
return;}
fputs (str, sn); /* функция записывает строку из str в файл на диске А.*/
printf (stdern"Вывод в стандартный файл ошибок");
fclose (fr); fclose (fn);
}
Функция fgets( )
Эта функция осуществляет ввод строки из файла – читает символы из файла (stdin) в нашем случае и размещает их в массиве по указателю (str). Пока не будут прочитаны 48 символов, т.е. (49-1). 49 - второй параметр функции fgets или не обнаружен символ новой строки, либо конец файла. Функция помещает символ \0 в конец строки, т.е. первый параметр fgets – это индитификатор читаемой строки, второй – ее максимальная длина и третий – это указатель на соответствующий файл.
Функция fputs( )
Эта функция помещает строку в файл – записывает строку по указателю (str) в данном случае в файл определяемый указателем (fw). Строка должна иметь ограничитель \0 – ноль. Функция записывает в файл всю строку за исключением символа (\ 0). Символ конец строки не добавляется.
С начала работы любой программы автоматически открывается 3 файла и для них определяются соответствующие указатели.
1) Это файл для стандартного ввода информации с клавиатуры с указателем stdin.
2) Для стандартного вывода информации на экран дисплея с указателем stdout.
3) Для стандартного вывода ошибок на экран дисплея с указателем stderr.
Объекты stdin, stdout, stderr – это константы, а не переменные и им нельзя что-либо присваивать.
Указатели.
Указатель – это переменная, содержащая адрес. Память типичной ЭВМ представляет собой массив последовательно пронумерованных и проадресованных ячеек, с которыми можно работать по отдельности или связанными пучками. Указатель – это группа ячеек (как правило, 2 или 4), в которых может храниться адрес. Всего существует два способа доступа к переменным:
1) ссылка на переменную;
2) использование механизма указателей;
Указатель-переменная – это переменная, предназначенная для хранения адресов памяти.
Указатель-константа – это значение адреса оперативной памяти.
Если одна переменная содержит адрес другой, то говорят, что первая переменная указывает на вторую.
Например: если переменная по адресу 1000 указывает на переменную по адресу 1004, то по адресу 1000 будет находиться значение 1004
Адрес памяти | Содержание |
Стандартный вид объявления указателя
Формат: тип * имя;
где тип - это любой допустимый тип (базовый тип) указателя, имя - имя переменной указателя. Базовый тип указателя определяет тип переменной, на которую указывает указатель.
Дата добавления: 2016-04-14; просмотров: 585;