русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции для форматного ввода данных


Дата добавления: 2013-12-23; просмотров: 704; Нарушение авторских прав


Форматный ввод данных осуществляется с помощью функцийscanf, fscanf,sscanfиcscanf. Все названные функции вводят значения, интерпретируют их в соответствии с "типом форматов, преобразуют их'в соответствии с типом аргу­ментов и присваивают введенные значения переменным. Правила использова­ния форматов и аргументов этих функций идентичны. Рассмотрим их более детально.

Прототип функции scanf:

int scanf(char * format [ , arg...]);

С помощью функцииscanfосуществляется ввод данных из стандартного вводного потокаstdin(с клавиатуры) в переменные, адреса которых задаются аргументами (arg). Функция имеет переменное количество параметров. Значение первого параметра format определяет адрес строки, которая управляет интерпретацией элементов ввода. Последующие аргументы представляют собой список адре­сов, переменных, значения которых должны быть введены в соответствии с форма­тами параметра format. Каждый последующий аргумент должен быть указателем на переменную типа, совместимого с типом, определенным очередным форматом в параметре format. Строка format обрабатывается слева направо: первому формату соответствует первый аргумент, второму - второй и т. д.

Прототип функцииfscanf:

int fscanf (File * stream, char * format [ , arg ... ], );

где stream - указатель для файла, из которого производится ввод.

Функция читает данные из файла, связанного с указателемstream.

Прототип функцииsscanf:

int sscanf (char * string, char * format [ , arg ... ], );

где string - указатель на строку, из которой производится ввод, Функцияsscanfчитает данные из строки string.

Прототип функцииcscanf:

int cscanf (char * format [ , arg ... ], );

Функцияcscanfчитает данные, введенные с консоли (с клавиатуры). Возвращаемое значение функций типаscanf.

- количество успешно введенных и присвоенных значений;



- значение0, если ввод неудачен, нет значений, которые введены и присвое­ны переменным;

- значениеEОF, если чтение производится по концу файла.

Все функции типаscanfвводят последовательно значения из полей входно­го потока, интерпретируя их в соответствии с их форматом. Первое введенное значение интерпретируется в соответствии с первым форматом строки format, преобразуется в форму хранения переменной аргумента и заносится по адресу первого аргумента. Значение из следующего поля интерпретируется в соответ­ствии со вторым форматом и т. д. до конца строки format.

Если количество форматов в строке scanf c больше, чем аргументов - указа­телей вводимых значений:

- при вводе данных с клавиатуры система останавливается и ожидает ввода данных для лишних форматов;

- при вводе из файла с помощью fscanf - результат не определен. . .

Если аргументов в списке больше, чем форматов в строке format, лишние аргументы игнорируются, не получают новых значений.

... Соответствие типов форматов типам переменных аргументов не контроли­руется транслятором. То есть можно определить формат “%f” для переменной типаint. Но при выполнении программы это несоответствие приведет к ава­рийному завершению программы.

Если при вводе очередных значений из входного файла в нем встретился символ конца строки (\n), а форматы и элементы списка аргументов не исчер­паны, происходит автоматический переход на следующую строку входного по­тока и ввод продолжается со следующей строки. То есть при переходе к сле­дующему полю функцияfscanfможет "перешагивать" через границы строк. Таким образом, если с помощьюfscanfвводится последовательно ряд значений из ряда строк текстового файла, длины которых не кратны количеству пози­ций, вводимых за одно выполнение функцииfscanf, то ввод очередных значе­ний начинается с позиции, на которой закончен предыдущий ввод.



<== предыдущая лекция | следующая лекция ==>
Операторы передачи управления | Заданной длины поля вводимого значения, если она определена в формате.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.