Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_S.doc
Скачиваний:
24
Добавлен:
09.02.2015
Размер:
1.2 Mб
Скачать

3.7. Ввод и вывод простых типов данных

Ввод/вывод данных является неотъемлемой составляющей любой программы - без ввода исходных данных для обработки и без вывода результатов не обходится ни одна программа.

В этом разделе будут рассмотрены только некоторые аспекты организации ввода/вывода в языке C++, относящиеся к консольному вводу/выводу простых типов данных.

В языке C++ нет встроенных средств ввода/вывода — он осуществляется с помощью функций и объектов, содержащихся в стандартных библиотеках.

В C++ можно использовать два различных способа реализации ввода-вывода.

Первый способ (унаследованный от языка C) основан на использовании ряда библиотечных функций, наиболее употребимыми из которых являются функции printfиscanf. Они выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата. Строка формата содержит символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе, и спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами. Например:

#include <iostream>

using namespace std;

int main ()

{

setlocale (0, "");

int a;

printf ("Введите целое число:\t");

scanf ("%d", &a);

printf ("Вы ввели значение:\t%d\n\n", a);

system ("Pause");

return 0;

}

Второй способ, характерный для C++, основан на использовании стандартных потоков ввода (cin) и вывода (cout). Та же самая программа в стилеC++ будет выглядеть так:

#include <iostream>

using namespace std;

int main ()

{

setlocale (0, "");

int a;

cout << "Введите целое число:\t";

cin >> a;

cout << "Вы ввели значение:\t" << a << "\n\n";

// cout << "Вы ввели значение:\t" << a << endl << endl;

system ("Pause");

return 0;

}

В одной и той же программе совмещать эти два способа не рекомендуется.

В дальнейшем будем использовать именно второй способ организации ввода/вывода.

При использовании потоков для вывода данных на экран используется операция <<, которая так и называется: операция выводаили операциявставки(данные "вставляются" в поток вывода).

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

Обе эти операции "знают" как осуществлять ввод и вывод стандартных простых типов данных. Более того эти операции можно "научить", как осуществлять ввод/вывод нестандартных пользовательских типов данных (перегрузка операций, которая будет рассмотрена позднее).

А сейчас перейдем к изучению приемов ввода/вывода простых стандартных типов данных.

Вывод текстовых строк

Текстовые (строковые) литералы в C++ представляются как последовательность символов, заключенная в двойные кавычки. Например:

"Это пример текстовой строки".

Вывод текстовых строк на экран осуществляется через стандартный поток вывода с помощью операции вывода <<:

cout << "Это пример текстовой строки";

Внутрь текстовых строк можно вставлять управляющие escape-последовательности.Escape-последовательности служат для управления выводом, и представляют собой специальные последовательности из двух или более символов, начинающиеся символом обратной наклонной черты -\. При этом каждая такая последовательность воспринимается компилятором как 1 символ. Примерами таких управляющих последовательностей в предыдущих программах являются\t- символ табуляции и\n- символ перевода строки (все эти последовательности приведены вразделе 3.5). С помощьюEscape-последовательностей в текстовую строку можно включить любой символ с помощью его восьмеричного или шестнадцатеричного кода (в том числе и символы, которых нет на клавиатуре). Например:

cout << "Это символ с восьмеричным кодом 254:\t\254\n";

cout << "А это символ с шестнадцатеричным кодом xAA:\t\xAA\n";

На экран будут выведены две строки:

Это символ с восьмеричным кодом 254: ┐

А это символ с шестнадцатеричным кодом xAA: Є

Если на экран необходимо вывести пустую строку, достаточно вставить в поток дважды подряд управляющую последовательность \n:

cout << "Это первая строка\n";

cout << "\n"; // Вторая строка пустая

cout << "Это третья строка\n";

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

cout << "Это " \

"условный " \

"пример " \

"длинного " \

"текста\n";

или так

cout << "Это " "условный " "пример "

"длинного " "текста\n";

На экран будет выведена одна строка, после чего экранный курсор перейдет на новую строку (управляющая последовательность \n):

Это условный пример длинного текста

Символ \ и символ пробела можно использовать для "сцепления" отдельных строк. Если в программе встречаются два или более строковых литерала, разделенные только пробелами, то они будут рассматриваться как одна символьная строка.

Ввод текстовых строк с клавиатуры будет рассмотрен позже.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]