Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
готовые инфа.docx
Скачиваний:
179
Добавлен:
11.05.2015
Размер:
195.68 Кб
Скачать

60. Консольный ввод/вывод данных в языке Си.

Ввод/вывод информации в языке C осуществляется с помощью функций, объявленных в заголовочных файлах . Простейший способ воспользоваться функцией – написать обращение к этой функции. Основные функции ввода/вывода задаются в заголовочном файле stdio.h. printf() – консольный вывод

scanf() – консольный ввод.

Структура обращения к функции:

printf ("строка формата", арг1, арг2, …, аргN);

В качестве аргументов функции арг1…аргN 

используются идентификаторы переменных или выражения. Список аргументов может быть пустым. Строка формата записывается в двойных кавычках и может содержать:

любой текст; спецификаторы форматов (по количеству аргументов), обозначаются символом %, содержат информацию о типе выводимого значения и его модификации; управляющие символы. Напомним, что управляющий символ, или ESC-последовательность, формируется из символа обратной наклонной черты «\», называемого в языке C escape-символом, и латинской буквы. 

Синтаксис обращения к функции:

scanf("строка формата", список аргументов);

С помощью данной функции производится ввод с клавиатуры значений переменных, перечисленных в списке аргументов в формате, определенном строкой формата. Функция преобразует последовательность вводимых символов в различные формы: целые числа, числа с плавающей точкой, символы и строки C.

Особенности функции:

в языке C в строке формата рекомендуется писать только спецификаторы форматов; количество спецификаторов должно быть равно числу аргументов в строке; каждый спецификатор имеет ту же структуру, что и в функции printf();

список аргументов может состоять из одного или нескольких аргументов; разделителем в списке аргументов служит [,];

в качестве аргументов функции используются только адреса переменных.

Задачей аргумента в данной функции является указание адреса ячейки памяти, куда должно быть помещено вводимое значение. Так, символ & обозначает операцию получения адреса переменной, т. е. конструкция &p  обеспечивает ввод значения в ячейку памяти, где размещена переменная p. При использовании функции scanf()  необходимо помнить два правила:

при считывании значений для переменных простого типа перед именем переменной ставится символ &;

при считывании строки символ & не ставится, так как строковая переменная задается с помощью указателя.

61. Файловый ввод/вывод данных в языке Си.

Чтение из потока

при помощи fgetc

Функция fgetc применяется для чтения символа из потока.

int fgetc(FILE *fp);

В случае успеха, fgetc  возвращает следующий байт или символ из потока (зависит от того, файл «двоичный» или «текстовый»). В противном случае, fgetc возвращает EOF. (Отдельный тип ошибок можно определить вызовом ferror или feof с указателем на файл.)

Стандартный макрос getc также определен в <stdio.h>, успешно работая как fgetc, кроме одного: будучи макросом, он может обрабатывать свои аргументы более одного раза.

Стандартная функция getchar  также определена в <stdio.h>, она не принимает аргументов, и эквивалентна getc(stdin) при помощи fgets. Функция fgets применяется для чтения строки из потока. Считывание происходит до тех пор пока не будет достигнут конец строки или длина строки, в которую происходит считывание.

fwrite определяется как

int fwrite ( const char * array, size_t size, size_t count, FILE * stream ); Функция fwrite записывает блок данных в поток. Таким образом запишется массив элементов 

array в текущую позицию в потоке. Для каждого элемента запишется size байт. Индикатор позиции в потоке изменится на число байт, записанных успешно. Возвращаемое значение будет равно count в случае успешного завершения записи. В случае ошибки возвращаемое значение будет меньше count.

Функция fputc применяется для записи символа в поток.

int fputc(int c, FILE *fp);

Параметр fputc конвертируется в unsigned char перед выводом. Если прошло успешно, то fputc возвращает записанный символ. Если ошибка, то fputc возвращает EOF.

Стандартный макрос putc также определен в <stdio.h>, работая в общем случае аналогично fputc, за исключением того, что будучи макросом, он может обрабатывать свои аргументы более одного раза.

Стандартная функция putchar, также определенная в <stdio.h>, принимает только первый аргумент, и является эквивалентной putc(c, stdout), гдеc является упомянутым аргументом.