Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Форматный ввод для стандартных потоков ввода




 

Вид функции scanf:

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

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

 

Пример 21

scanf(“ %d%f ”, &x,&y);

Пример 22

int i;

float x;

char name[50];

scanf(“%d%f%s”,&i, &x, name);

 

С входной строкой

25 54.32E-1 Thompson

присвоит 25 – i, 5.432 – x, “Thompson’\0’” – name.

Функция gets описывается в библиотечном файле stdio.h.

Функции atoi, atol, atof (описывается в библиотечном файле stdlib.h ) для преобразования строки соответственно в целое, длинное целое или вещественное число.

 

Пример 23 Пример, иллюстрирующий ввод-вывод.

int main()

{

SetConsoleOutputCP(1251); //функция для вывода текста кириллицей

char name[80], ageStr[80];

int age=0;

printf("Пожалуйста введите Ваше имя:");

gets(name);

printf("Привет, %s! Сколько Вам лет?", name);

gets(ageStr);

age=atoi(ageStr);

if (age>0 && age<=30) printf(" %s! Да Вам всего лишь %d лет?", name,age);

else printf(" %s! Вы большой молодец?", name);

getch();

return 0;

}

 

Будет выведено:

 

Пожалуйста введите Ваше имя: Иван

Привет, Иван! Сколько Вам лет? 25

Иван! Да Вам всего лишь 25 лет?

Операторы ввода – вывода C++

При использовании библиотеки классов C++, используется библиотечный файл iostream, в котором определены стандартные потоки ввода данных от клавиатуры cin и вывода данных на экран дисплея cout, а также соответствующие операции:

1) << – операция записи данных в поток;

2) >> – операция чтения данных из потока.

Операторы ввода (>>) и вывода (<<) не являются встроенными для языка C++, а обеспечиваются стандартной библиотекой с помощью потоков ввода – вывода. При запуске программы на выполнение автоматически открываются три стандартных потока языка C++:

cin – стандартный поток ввода (с клавиатуры);

cout – стандартный поток вывода (на дисплей);

cerr – стандартный поток для выдачи сообщений (на дисплей). Вместо потока cout для вывода сообщений об ошибках может использоваться поток cerr.

Для выполнения операторов потокового ввода – вывода в программу должна быть включена инструкция препроцессора:

 

#include <iostream> // подключить файл, где объявлены cin и cout

Для возможности использования кириллицы в программу должна быть включена инструкция препроцессора:

#include <windows.h> // файл, где определена функция SetConsoleOutputCP(1251)

или

#include <clocale> // файл, где определена функция setlocale(LC_CTYPE,"rus")

 

Пример 24. Следующая функция считывает набранное на клавиатуре целое число (например, 4321) и помещает его в переменную i, затем вводит в переменную d число с плавающей точкой (например, 12.34E5), после чего считывает набранную на клавиатуре строку символов (например, имя “Валентин”).

 

void f()

{

int i;

double d;

char name[20];

cin >> i; // считывание в i целого числа

cin >> d; // считывание в d числа с плавающей точкой удвоенной

// точности

cin >> name; // считывание в массив name строки символов

}

 

Три последние инструкции приведенной выше функции, если не учитывать комментарии, можно заменить одной строкой:

cin >> i >> d >> name;

При вводе данных нет необходимости ставить перед именами переменных оператор взятия адреса &. Оператор ввода >> берёт на себя задачу вычисления адреса, определение формата вводимых данных, преобразование символьного представления информации в двоичное.

 

Например:

void f()

{

cout << 10;

}

Эта функция поместит символ 1, а затем символ 0 в стандартный поток вывода, т. е. на экран в строку, на которую указывает курсор.

Можно выводить значения различных типов, например:

 

Пример 25. Вывод значений различных типов:

void h(int i)

{

cout << “Значение i равно “; // вывод текста

cout << i; // вывод целого

cout << ‘\n’; // помещает в выходной поток один символ – //переход на новую строку

}

 

Три последние инструкции приведенной выше функции, если не учитывать комментарии, можно заменить одной строкой:

cout << “Значение i равно “<< i<< ‘\n’;

 

При выводе отдельных символов каждый символ должен заключаться в одиночные кавычки в отличие от вывода строк символов, когда выводимая строка заключается в двойные кавычки.

 

Пример 18. Совместное использование операторов ввода и вывода:

#include "stdafx.h"

#include <iostream> // подключить файл, где объявлены cin и cout

#include <conio.h> // файл, где определена функция getch()

#include <windows.h> // файл, где определена функция SetConsoleOutputCP(1251);

using namespace std;

void main()

{

SetConsoleOutputCP(1251); //функция для вывода текста кириллицей

char name[20];

cout << "Пожалуйста, введите Ваше имя.\n";

cin >> name;

cout << "Привет, " << name << "!\n";

getch(); // ждать нажатия любой клавиши

}




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 469; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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