Для функции scanf() используется следующий спецификатор формата:
· % с - одиночный символ,
· % [size]c – массив символов заданного размера,
· % s – строка символов,
· %e, % E, %f, %g, %G – вещественное число,
· %d, %i, %o, %x, %D, %I, %0, %X, %n – беззнаковое число.
Функции ввода:
· int getch(); - ввод символа с клавиатуры без “эхо-печати”
· int getchar(); - ввод символа с клавиатуры с “эхо-печатью”
· int getc (FILE* stream); - ввод символа из заданного потока
FILE * - указатель файлового потока (т.е. указатель на структуру, содержащую атрибуты, описывающие файловый поток. Все эти функции считывают символ из буфера после нажатия клавиши <ENTER>. В случае ошибки возвращают EOF.
Функции вывода:
· int putchar (int c); - вывод символа на экран
· int putc (int c, FILE* stream); - вывод символа на экран в поток stdout или stderr
Эти функции возвращают значение первого аргумента или EOF в случае ошибки.
· int puts (const char * ); - вывод строки
· int gets (const char *); - ввод строки
Для ввода чисел с помощью gets() необходимо воспользоваться функциями atoi( ), atol( ), atof( ) для преобразования строки к числам типа int, long u double. Эти функции находятся в модуле <stdlib.h>.
# include < stdio.h>
# include < stdleb.h >
void main ( )
{
float value;
char buf [20];
puts ("введите вещественное число");
gets (buf);
value = atof(buf);
printf ("%f\n", value);
}
//копирование байтов из stdin в stdout
# include <stdio.h>
void main ( )
{
int c;
while (( c = getchar( )!=EOF ) putchar(с);
}
Файловые потоки
Файлы подразделяются на текстовые и бинарные. Основные функции работы с файловыми потоками содержатся в <stdio.h>. Указатель файлового потока FILE* - это указатель на структуру, определенную в модуле <stdio.h>.
Текстовые файлы
Основные функции:
· открыть файловый поток
FILE * fopen (const char * filename, const char * mode);
Атрибут mode задает режим доступа (по умолчанию текстовый).
Режим доступа |
Текстовый |
Двоичный |
Назначение |
"r" |
"rt" |
"rb" |
Открытие существующего файла только для чтения |
"w" |
"wt" |
"wb" |
Создание нового файла только для записи или перезапись существующего файла с тем же именем |
"a" |
"at" |
"ab" |
Открытие файла в режиме “только для записи” с добавлением новой информации в конец файла |
"r +" |
"r + t" |
"rb +" |
Открытие существующего файла для чтения и записи |
"w + " |
"wt +" |
"wb +" |
Создание нового файла для чтения и записи или перезапись существующего файла с тем же именем |
"a + " |
"at +" |
"ab +" |
Открытие существующего файла для чтения и записи с добавлением новой информации в конец файла |
· закрытие файлового потока
fclose(FILE * stream);
· вывести буфер потока
int fflush(FILE * stream );
· вывести буферы всех потоков
int fflushall( );
· переименование (возвращается 0 в случае успеха, 1 – в случае ошибки)
int rename (const char* oldname, const сhar* newname);
· удаление файла
int remove (const char* filename);
· чтение одного символа из заданного потока. В случае успеха возвращается значение символа. В случае ошибки или если указатель файлового потока находится за его концом, возвращается EOF.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.