C ++ Basic Input Output
Стандартная библиотека C ++ предоставляет богатый набор функций ввода / вывода, мы будем описаны в последующих главах. В этой главе обсуждается программирование C ++, наиболее простой и часто операций ввода / вывода.
C ++ ввод / вывод происходит в потоке, поток представляет собой последовательность байтов. Если поток байтов течет из устройства (такие как клавиатура, дисководы, сетевые соединения и т.д.) памяти, которая называетсяоперация ввода.Если поток байтов , вытекающих из запоминающих устройств (таких как дисплеи, принтеры, дисковые накопители, сетевые соединения и т.д.), который называетсяоперация вывода.
I / O файлов библиотеки заголовка
Следующие файлы заголовков играют важную роль в программировании C ++.
头文件 | 函数和描述 |
---|---|
<iostream> | 该文件定义了cin、cout、cerr和clog对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器(比如setw和setprecision),来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |
Стандартный поток вывода (соиЬ)
Предопределенный объектсоиЬ является экземпляром класса ostream.Объект соиЬ «связан» со стандартным устройством вывода, обычно на дисплее.суд << оператор используется в сочетании со вставкой потока следующим образом :
#include <iostream> using namespace std; int main( ) { char str[] = "Hello C++"; cout << "Value of str is : " << str << endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Value of str is : Hello C++
Компилятор C ++ на основе типа данных, которые должны быть выходной переменной и выбрать соответствующий оператор вставки потока для отображения значения. << Оператор перегружен для вывода встроенного типа (целое, с плавающей точкой, двойной, строки, и указатель) элементов.
Вставка потока Оператор << можно использовать несколько раз в заявлении, как это показано в приведенных вышепримерах, епсИ на конец линии , чтобы добавить разрыв строки.
Стандартный входной поток (CIN)
Предопределенные объектыCIN IStreamявляется экземпляром класса. Объект CIN связан со стандартным устройством ввода, обычно клавиатурой. экстракцияКИН потоковый оператор >> используется в комбинации, следующим образом :
#include <iostream> using namespace std; int main( ) { char name[50]; cout << "请输入您的名称: "; cin >> name; cout << "您的名称是: " << name << endl; }
Когда приведенный выше код компилируется и выполняется, он предложит пользователю ввести имя. Когда пользователь вводит значение и нажмите клавишу Enter, вы увидите следующие результаты:
请输入您的名称: cplusplus 您的名称是: cplusplus
компилятор C ++, основываясь на типе значения входных данных, выберите соответствующий оператор извлечения потока для извлечения значения, и сохраняет его в данной переменной.
Поток оператор извлечения >> может быть использована несколько раз в заявлении, если множество требований входных данных, вы можете использовать следующее заявление:
cin >> name >> age;
Это эквивалентно следующим двум заявлениям:
cin >> name; cin >> age;
Стандартный поток ошибок (сегг)
Предопределенный объектostream сеггявляется экземпляром класса. сегг объект связан со стандартным устройством ошибки, как правило , на дисплее, но объект не является буферномсегг, и каждый поток сегг немедленно вставляется в выходной.
сегг также поток вставки оператора << и используется в комбинации, следующим образом :
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; cerr << "Error message : " << str << endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Error message : Unable to read....
Стандартный поток журнала (засорить)
Предварительно определенные объектызавалы является экземпляром класса ostream.засорить объекты , входящие в состав стандартного устройства ошибки, как правило , на дисплее, но объект буферномпомеху.Это означает, что каждый поток в помеху будут сохранены в буфере в, пока буфер не заполнится, или только тогда, когда выходной буфер сбрасывается.
такжезабивают оператора вставки поток << используемый в комбинации, следующим образом :
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; clog << "Error message : " << str << endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Error message : Unable to read....
С помощью этих маленьких примеров, мы не можем отличить COUT, КВЖД и засорить разницу, но в процессе подготовки и реализации крупных программ, разница между ними становится весьма очевидной. Так что хорошая практика программирования говорит нам, что поток использование сегг для отображения сообщения об ошибке, в то время как другие используют сообщения журнала закупорить выходной поток.