C ++ Basic Input Output
biblioteca padrão C ++ fornece um rico conjunto de funções de entrada / saída, que serão descritos nos capítulos seguintes. Este capítulo discute a programação C ++, a operações de O mais básico e comum I /.
O C ++ I / O ocorre na corrente, a corrente é uma sequência de bytes. Se o fluxo de bytes está a fluir a partir do dispositivo (tal como um teclado, unidades de disco, ligações de rede, etc.) de memória, que é chamado aoperação de entrada.Se o fluxo de bytes que flui a partir dos dispositivos de memória (tais como monitores, impressoras, unidades de disco, conexões de rede, etc.), que é chamadoa operação de saída.
I arquivos de cabeçalho / S da biblioteca
Os seguintes arquivos de cabeçalho são importantes na programação C ++.
头文件 | 函数和描述 |
---|---|
<iostream> | 该文件定义了cin、cout、cerr和clog对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器(比如setw和setprecision),来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |
O fluxo de saída padrão (cout)
Predefinidocout objeto é uma instância da classe ostream.objeto cout está "conectado" ao dispositivo de saída padrão, geralmente a exibição.cout << operador é utilizado em conjunto com a inserção de fluxo como se segue:
#include <iostream> using namespace std; int main( ) { char str[] = "Hello C++"; cout << "Value of str is : " << str << endl; }
Quando o código acima é compilado e executado, ele produz os seguintes resultados:
Value of str is : Hello C++
compilador C ++ com base no tipo de dados a ser variável de saída e selecione o operador de inserção de fluxo apropriada para exibir o valor. << Operador está sobrecarregado para a saída do tipo built-in (integer, float, double, string e ponteiro) itens.
operador de inserção de fluxo << pode ser usada várias vezes em comunicado, como mostrado nosexemplos acima, endl para o fim da linha de adicionar uma quebra de linha.
fluxo de entrada padrão (cin)
objetos predefinidoscin istreamé uma instância da classe. cin objeto é afiliado ao dispositivo de entrada padrão, normalmente o teclado. extraçãocin é operador de transmissão >> usados em combinação, como segue:
#include <iostream> using namespace std; int main( ) { char name[50]; cout << "请输入您的名称: "; cin >> name; cout << "您的名称是: " << name << endl; }
Quando o código acima é compilado e executado, ele solicita que o usuário digite um nome. Quando o usuário insere um valor e pressione a tecla Enter, você verá os seguintes resultados:
请输入您的名称: cplusplus 您的名称是: cplusplus
compilador C ++ com base no tipo de valor de entrada de dados, selecione o operador de extração de fluxo adequado para extrair valor e armazena em uma determinada variável.
Fluxo operador de extração >> pode ser usado várias vezes em um comunicado, se uma pluralidade de requisitos de entrada de dados, você pode usar a seguinte declaração:
cin >> name >> age;
Isto é equivalente às duas seguintes afirmações:
cin >> name; cin >> age;
fluxo de erro padrão (cerr)
Predefinidocerr objeto ostreamé uma instância da classe. objeto cerr é afiliado ao dispositivo de erro padrão, geralmente a exibição, mas o objeto écerr não tamponada,e cada cerr fluxo é imediatamente inserido na saída.
cerr também transmitir operador de inserção << e usados em combinação, como se segue:
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; cerr << "Error message : " << str << endl; }
Quando o código acima é compilado e executado, ele produz os seguintes resultados:
Error message : Unable to read....
fluxo de log padrão (obstrução)
objetos predefinidosobstrução é uma instância da classe ostream.entupir objetos filiadas ao dispositivo de erro padrão, geralmente a exibição, mas o objeto é tamponadoobstrução.Isto significa que cada fluxo para a obstrução vai ser armazenado na memória tampão até que o tampão enche, ou apenas quando a memória intermédia de saída é descarregado.
tambémentupir o operador de inserção de fluxo << usados em combinação, como se segue:
#include <iostream> using namespace std; int main( ) { char str[] = "Unable to read...."; clog << "Error message : " << str << endl; }
Quando o código acima é compilado e executado, ele produz os seguintes resultados:
Error message : Unable to read....
Através destes pequenos exemplos, não podemos distinguir cout, cerr e entupir a diferença, mas na elaboração e implementação de grandes programas, a diferença entre eles se torna muito aparente. Então, boa prática de programação nos diz que utilize o fluxo cerr para exibir uma mensagem de erro, enquanto outros usam as mensagens de log entupir saída de fluxo.