Если требуется больше символов: wchar_t
Иногда программа должна обрабатывать наборы символов, которые не вписываются в 8 битов ASCII кода (пример – система японских иероглифических писем или символы кириллицы). На этот случай в языке С++ имеется пара способов. Во-первых, если большой набор символов является базовым набором символов для реализации, то производитель компилятора может определить char как 16-битовый тип, или даже больше. Во-вторых, реализация может поддерживать как малый базовый набор символов, так и расширенный набор. Традиционный 8-битовый тип char может представлять базовый набор символов, а другой тип, называемый wchar_t (wide character type) – расширенный тип символов. Тип wchar_t является целочисленным типом, имеющим достаточно памяти для представления самого большого расширенного набора символов в системе. 1.5. Стандартные функции ввода-вывода С++ Функции форматного ввода-вывода printf() и scanf() В распоряжении программиста находится довольно большой списсок функций ввода-вывода (), наиболее применимыми из них являются printf() и scanf(). Функция printf() позволяет выводить информацию на экран при программировании в консольном режиме. Данная функция определена в библиотеке <stdio> и имеет такой синтаксис:
Здесь первый аргумент (*format) – форматная спецификация определяет вид строки, которая выводится на экран и может содержать специальные управляющие символы для вывода переменных. Далее, идет необязательный список аргументов – тех переменных, значения которых необходимо вывести на экран. Функция возвращает либо число отображенных символов, либо отрицательное число в случае неправильной работы. Структура форматной спецификации имеет следующий общий вид:
Символы управления форматированием, составляющие различные элементы спецификации, содержит таблица (Приложение B Таблица 18).
Также можно выводить переменные разного типа, от целочисленных до строковых. Для выполнения этой операции используются специальные управляющие символы, которые называются спецификаторами и которые начинаются с "%" (Приложение B Таблица 18).
Кроме спецификаторов в функции printf() можно использовать управляющие последовательности (Приложение B Таблица 19).
Все управляющие символы, при использовании, обрамляются двойными кавычками, но если необходимо вывести какое-то сообщение, то управляющие символы можно записывать сразу в сообщении, в любом его месте.
Аналогично используется и функция scanf(), это функция ввода, также располагается в библиотеки <stdio> и имеет синтаксис:
Переменная *format определяет форматную строку для определения типа вводимых данных и может содержать спецификаторы. Затем, следует список необязательных аргументов.
Функция scanf() может работать сразу с несколькими переменными. Предположим, что необходимо ввести два целых числа с клавиатуры. Вообще, можно дважды вызвать функцию scanf(), однако лучше воспользоваться такой конструкцией:
Функция scanf() возвращает число успешно считанных элементов. Если операции считывания не происходило, что бывает в том случае, когда вместо ожидаемого цифрового значения вводится какая-то буква, то возвращаемое значение будет равно 0. Обратите внимание на то, что в списке параметров функции scanf() перед каждой перемнной стоит знак &, он означает, что данные будут переданы из функции в программу по ссылке. Пока это просто лучше запомнить, но позднее, в параграфе 4.1 способы передачи данных из функции будут рассматриваться детально. Потоковый ввод-вывод cin/cout Потоковые объекты ввода/вывода cout и cin – это объекты классов istream (от Input Stream - поток ввода) и ostream (от Output Stream - поток вывода) соответственно, они имеют операторы извлечения из потока (>>) и вставки в поток (<<). Система классов ввода/вывода довольна сложна. Базовым классом является класс ios (от Input/Output Stream - потоковый ввод/вывод). У класса ios довольно много производных классов. На данный момент нас интересует лишь несколько. По умолчанию, в адресном пространстве using namespace std, поток вывода cout связан с видеодрайвером ОС, а поток ввода cin – с буфером клавиатуры, но они могут быть перенастроены на другие устройства. Для использования потокового ввода и вывода необходимо подключить файл <iostream.h>.
Строка cout << "Hello, World"; выводит на экран строку, вторая строка cin.get(); необходима для того чтобы организовать задержку до нажатия клавиши, последняя строка программы возвращает значение 0;
Разберем ввод данных с клавиатуры. Для этого разработаем приложение спрашивающее у пользователя его имя.
Здесь включен заголовочный файл <conio.h> для организации задержки экрана посредством функции getch(). Как видно из приведенных выше листингов, в строковые константы, выводимые объектом cout в поток вывода и получаемые cin из потока ввода, можно включать управляющие последовательности (управляющие символы - Приложение B, Таблица 19).
Лабораторная работа №1. Типы данных. Ввод-вывод Продолжительность – 2 часа. Максимальный рейтинг – 8 баллов. Цель работы Освоение следующих умений, навыков, компетенций: Создать проект на Visual C++, написать простейшую программу на языке С++, отладить и запустить на выполнение программу. Научиться задавать переменные и константы следующих типов: целого, вещественного, символьного и строкового – в соответствии с индивидуальным заданием. Освоить два способа ввода с клавиатуры и вывода на экран значений этих переменных – форматный и потоковый способы. Изучить спецификаторы, форматы ввода-вывода и управляющие символы.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|