Жаманкин Р.А., Астапенко Н.В.
Северо-Казахстанский Государственный
Университет им.М.Козыбаева, Республика Казахстан
Изучение средств ввода-вывода в приложениях, написанных на
языке С/С++
В языка С нет средства ввода-вывода. Все
операции ввода-вывода выполняются с помощью функций, содержащиеся в библиотеке
языка С, поставляемой в составе определенной системы программирования С. В
текстовых файлах информация хранится в виде текста, который довольно легко
прочесть человеку. Как правило, после чтения такого файла программа,
преобразует прочитанные данные в какую-нибудь двоичную форму для более удобной
обработки. Язык С является фундаментом С++.
При этом С++ поддерживает всю файловую систему
С. Но при использовании С-кода в С++ не обязательно менять процедуру
ввода-вывода при написании программ на С++ более удобно использовать именно
систему С++.
В Си для программ используется
единый интерфейс ввода-вывода , не зависящий от того, к какому
определенному устройству осуществляется доступ. То есть потоком
называется нечто более общее чем само устройство , которое_находиться_между_программой_и_устройством.
В то же время определенное устройство называется файлом. Наша цель
понять, каким образом происходит связь потоков и файлов.
Библиотека языка С содержит три уровня
ввода-вывода: потоковый ввод-вывод, ввод-вывод нижнего уровня и ввод-вывод для
консоли и портов.
Функции ввода-вывода языка С++, имеют
возможность обмена данными с файлами на уровне потока, и дает возможность
обрабатывать данные различных размеров и форматов, обеспечивая при этом
буферизованный ввод и вывод. Поток ̶ это файл вместе с
предоставляемыми средствами буферизации.
Открывать и закрывать потоки (связывать указатели на потоки с конкретными
файлами); вводить и выводить: символ, строку, форматированные данные, порцию_данных_произвольной_длины;_анализировать
ошибки потокового ввода-вывода и условие достижения конца потока_(конца_файла);
управлять буферизацией_потока_и_размером_буфера;_получать_и_устанавливать
указатель (индикатор) текущей позиции.
При выполнении программы автоматически
открываются 5 потоков , из которых_основные:_поток_ввода_(stdin);_поток_вывода_(stdоut);_поток вывода сообщений_об_ошибках_(stderr).
По умолчанию стандартному потоку ввода stdin
ставится в соответствие клавиатура,_а_потокам_stdоut_и_stderr_соответствует_монитор.
Для работы со стандартными потоками в режиме
форматного ввода-вывода определены две функции: printf( ) ̶ форматный вывод; scanf( ) ̶
форматный ввод.
При обращении к функции printf() возможны две
формы задания первого параметра:
int_printf_(*форматная_строка,_список_аргументов);
int_printf_(указателъ_на_форматную_строку,_список_аргументов);
В обоих случаях функция printf() преобразует
данные из внутреннего представления в символьный вид в соответствии с форматной
строкой и выводит их в выходной поток. Данные, которые преобразуются и
выводятся, задаются_как_аргументы_функции_printf().
Возвращаемое_значение_функции_printf()_̶−_число_напечатанных_символов;_а_в_случае_ошибки −
отрицательное_число.
Форматная строка ограничена двойными кавычками и
может включать произвольный текст, управляющие символы и спецификации
преобразования данных. Текст и управляющие символы из форматной строки просто
копируются в выходной поток. Форматная строка обычно размещается в списке
фактических параметров функции, что соответствует первому способу вызова
функции printf(). Второй способ предполагает, что первый фактический
параметр ̶ это указатель типа char *, a сама форматная строка
определена в программе как обычная строковая константа или переменная.
В список аргументов функции printf() включают
выражения, значения которых должны быть выведены из программы. Частные случаи
этих выражений −_переменные_и_константы.
Форматный ввод из входного потока осуществляется
функцией scanf().
Прототип_функции_scanf(_)_имеет_вид:
int_scanf(cоnst_char_*fоrmat,_…);
Функция scanf() читает последовательности кодов
символов (байты) из входного потока и интерпретирует их в соответствии с
форматной строкой как целые числа, вещественные числа, одиночные символы,
строки.
В данной работе были рассмотрены особенности
операций ввода-вывода в языке программирования С/С++, в которых есть много
общего. Рассмотрены понятия «функции» и «потока», их виды и особенности
функционирования в языке программирования. Более подробно были рассмотрены
потоковый ввод-вывод_символов,_его_особенности_работы.
Литература:
1. Пышкин Е. В.
«Основные концепции и механизмы объектно-ориентированного_программирования._2005
2. Медведев В. И.
Особенности объектно-ориентированного программирования на_C++/CLI,_C#_и_Java.2010г.
3. Бьерн
Страуструп Язык программирования С++ , 2011г