Символы в управляющей строке, не являющиеся разделителями
⇐ ПредыдущаяСтр 5 из 5 Если в управляющей строке находится символ, не являющийся разделителем, то функция scanf() прочитает символ из входного потока, проверит, совпадает ли прочитанный символ с указанным в управляющей строке, и в случае совпадения пропустит прочитанный символ. Например, "%d,%d" заставляет scanf() прочитать целое значение, прочитать запятую и пропустить ее (если это была запятая!), а затем прочитать следующее целое значение. Если же указанный символ во входном потоке не будет найден, то scanf() завершится. Когда нужно прочитать и отбросить знак процента, то в управляющей строке следует указать %%. Модификаторы формата Как и printf(), функция scanf() дает возможность модифицировать некоторое число своих спецификаторов формата. В спецификаторах формата моно указать модификатор максимальной длины поля. Это целое число, расположенное между % и спецификатором формата; оно ограничивает число символов, считываемых из этого поля. Например, чтобы считывать в переменную str не более 20 символов, пишите scanf("%20s", str); Если поток ввода содержит больше 20 символов, то при следующем вызове функций ввода считывание начнется после того места, где оно закончилось при предыдущем вызове. Например, если вы в ответ на вызов scanf() из этого примера введете ABCDEFGHIJKLMNOPRSTUVWXYZ то в str из-за спецификатора максимальной ширины поля будет помещено только 20 символов, то есть символы вплоть до Т. Это значит, что оставшиеся символы UVWXYZ пока еще не прочитаны. При следующем вызове scanf(), например при выполнении оператора scanf("%s", str); в str будут помешены буквы UVWXYZ. Ввод из поля может завершиться и до того, как будет достигнута максимальная длина поля – если встретится разделитель. В таком случае scanf() переходит к следующему полю.
Чтобы прочитать длинное целое, перед спецификатором формата поместите l (эль). А для чтения короткого целого значения перед спецификатором формата следует поместить n. Эти модификаторы можно использовать со следующими кодами форматов: d, i, o, u, x и n. По умолчанию спецификаторы f, e и g дают scanf() указание присваивать данные переменной типа float. Если перед одним из этих спецификаторов будет помещен l (эль), то scanf() будет присваивать данные переменной типа double. Использование L дает scanf() указание, чтобы переменная, принимающая данные, имела тип long double. Если в компиляторе предусмотрена обработка двухбайтовых символов, то модификатор l можно также использовать с такими кодами формата, как c и s. l непосредственно перед c является признаком указателя на объект типа wchar_t. А l непосредственно перед s – признак указателя на массив элементов типа wchar_t. Кроме того, l также применяется для модификации набора сканируемых символов, чтобы этот набор можно было использовать для двухбайтовых символов. 5.3. Дополнительные возможности ввода-вывода в языке С++ Язык С++ имеет свою библиотеку ввода-вывода. Она находится в файле iostream.h. Этот файл содержит средства управления потоками ввода-вывода. Ввод, идущий с клавиатуры пользователя, называется стандартным входным потоком или стандартным вводом. Он связывается с предопределенным в iostream.h потоком cin. Вывод, направляемый на экран пользователя, называется стандартным выходным потоком или стандартным выводом. Он связывается с предопределенным в iostream.h потоком cout. Операция вывода << направляет значение в стандартный выходной поток. cout << index; Для перехода на новую строку существуют два способа. Первый – это использовать определенный в iostream.h манипулятор endl. Манипулятор можно выводить в поток и при этом он меняет параметры вывода. Здесь endl вызовет переход на новую строку
cout << endl; Второй способ – это явно вывести в поток символ новой строки. В С++ он записывается двумя символами: '\n'. cout << '\n'; Одиночные кавычки ограничивают символ. Такой символ может быть внутри строки символов, например оператор cout << "Программа на С++\n"; вызовет переход на новую строку после вывода данного сообщения. В одном операторе вывода можно соединять несколько операций. Например: cout << "Значение index равно: " << index << endl; Вывод осуществляется по порядку, считая слева направо. Аналогично операция ввода >> читает значение из стандартного входного потока, например: cin >> index; Такие операции тоже можно соединять в одном операторе. Например, если в программе встретится следующий оператор: cin >> i1 >> i2; то программа будет ждать ввода с клавиатуры двух величин и первую из них поместит в переменную i1, а вторую – в переменную i2. Эти две вводимых величины можно разделять пробелом или табуляцией, а можно каждую из них вводить с новой строки – операция ввода сработает правильно. Пример. #include <iostream.h> void main() { int i; cout << "Введите целое число\n"; cin >> i; cout << "Вы ввели число << i << ", спасибо!"; }
Приложение Операции языка С++
Содержание
Глава I. ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА С++. 1 1. Состав языка С++. 1 1.1. Алфавит языка. 2 1.2. Идентификаторы.. 2 1.3. Ключевые слова. 4 1.4. Знаки операций. 4 1.5. Константы.. 4 1.6. Комментарии. 6 2. Структура программы на языке С++. 7 2.1. Стадии прохождения программы.. 7 2.2. Немного о функциях языка С++. 8 2.3. Общая структура программы на С++. 9 3. Типы данных С++. Переменные. 9 3.1. Концепция типа данных. 9 3.2. Основные типы данных. 10 3.3. Переменные. 13 4. Операции и выражения. 15 4.1. Выражение и его интерпретация. 15 4.2. Арифметические операции. 16 4.3. Операции отношения. 18 4.4. Логические операции. 18 4.5. Операции с разрядами. 19 4.6. Операции сдвига. 20 4.7. Операция условия. 20 4.8. Операция присваивания. 21 4.9. Операция sizeof 22 4.10. Преобразование типов. 23 4.11. Порядок выполнения операций. 23 5. Форматный ввод и вывод данных. 24 5.1. Форматный вывод: функция printf() 24 5.2. Форматный ввод: функция scanf() 31 5.3. Дополнительные возможности ввода-вывода в языке С++. 35 Приложение 37
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|