<iostream>
Declara objetos que controlam a leitura e a gravação nos fluxos padrão. Essa inclusão é geralmente o único cabeçalho necessário para executar a entrada e a saída de um programa C++.
Sintaxe
#include <iostream>
Observação
A biblioteca <iostream>
usa as instruções e #include <ios>
, #include <streambuf>
, #include <istream>
e #include <ostream>
.
Comentários
Os objetos se encaixam em dois grupos:
cin
,cout
,cerr
eclog
são orientados por byte, executando transferências convencionais de um byte por vez.wcin
,wcout
,wcerr
ewclog
são orientados por largura, convertendo de e para os caracteres largos que o programa manipula internamente.
Após executar determinadas operações em um fluxo, como a entrada padrão, você não pode executar operações de uma orientação diferente no mesmo fluxo. Portanto, um programa não pode operar de forma intercambiável em cin
e wcin
, por exemplo.
Todos os objetos declarados nesse cabeçalho compartilham uma propriedade peculiar: você pode presumir que eles foram construídos antes de qualquer objeto estático que você definir, em uma unidade de tradução que inclui <iostream>
. Da mesma forma, você pode presumir que esses objetos não são destruídos antes dos destruidores de qualquer um desses objetos estáticos que você definir. (Os fluxos de saída, entretanto, são liberados durante o encerramento do programa.) Portanto, é possível ler ou gravar com segurança nos fluxos padrão antes da inicialização do programa e após o encerramento do programa.
No entanto, essa garantia não é universal. Um construtor estático pode chamar uma função em outra unidade de conversão. A função chamada não pode presumir que os objetos declarados nesse cabeçalho foram construídos, dada a ordem incerta na qual as unidades de tradução participam da construção estática. Para usar esses objetos em tal contexto, primeiro você deve criar um objeto da classe ios_base::Init
.
Objetos de fluxo global
Nome | Descrição |
---|---|
cerr |
Especifica o fluxo global cerr . |
cin |
Especifica o fluxo global cin . |
clog |
Especifica o fluxo global clog . |
cout |
Especifica o fluxo global cout . |
wcerr |
Especifica o fluxo global wcerr . |
wcin |
Especifica o fluxo global wcin . |
wclog |
Especifica o fluxo global wclog . |
wcout |
Especifica o fluxo global wcout . |
cerr
O objeto cerr
controla a saída para um buffer de fluxo associado ao objeto stderr
, declarado em <cstdio>
.
extern ostream cerr;
Valor de retorno
Um objeto ostream
.
Comentários
O objeto controla inserções não armazenadas em buffer na saída de erro padrão como um fluxo de bytes. Uma vez que o objeto é construído, a expressão cerr.flags & unitbuf
é diferente de zero e cerr.tie() == &cout
. Para ver mais detalhes, confira cerr.flags
e unitbuf
.
Exemplo
// iostream_cerr.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;
void TestWide( )
{
int i = 0;
wcout << L"Enter a number: ";
wcin >> i;
wcerr << L"test for wcerr" << endl;
wclog << L"test for wclog" << endl;
}
int main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
cerr << "test for cerr" << endl;
clog << "test for clog" << endl;
TestWide( );
}
cin
Especifica o fluxo global cin
.
extern istream cin;
Valor de retorno
Um objeto istream
.
Comentários
O objeto controla extrações da entrada padrão como um fluxo de bytes. Após o objeto ser criado, a chamada cin.tie
retorna &cout
.
Exemplo
Neste exemplo, cin
define o bit de falha no fluxo quando se depara com caracteres não numéricos. O programa limpa o bit de falha e retira o caractere inválido do fluxo para continuar.
// iostream_cin.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "enter choice:";
cin >> x;
while (x < 1 || x > 4)
{
cout << "Invalid choice, try again:";
cin >> x;
// not a numeric character, probably
// clear the failure and pull off the non-numeric character
if (cin.fail())
{
cin.clear();
char c;
cin >> c;
}
}
}
2
clog
Especifica o fluxo global clog
.
extern ostream clog;
Valor de retorno
Um objeto ostream
.
Comentários
O objeto controla inserções armazenadas em buffer na saída de erro padrão como um fluxo de bytes.
Exemplo
Confira cerr
para ver um exemplo de como usar clog
.
cout
Especifica o fluxo global cout
.
extern ostream cout;
Valor de retorno
Um objeto ostream
.
Comentários
O objeto controla inserções na saída padrão como um fluxo de bytes.
Exemplo
Confira cerr
para ver um exemplo de como usar cout
.
wcerr
Especifica o fluxo global wcerr
.
extern wostream wcerr;
Valor de retorno
Um objeto wostream
.
Comentários
O objeto controla inserções não armazenadas em buffer na saída de erro padrão como um fluxo largo. Uma vez que o objeto é construído, a expressão wcerr.flags & unitbuf
é diferente de zero. Para ver mais detalhes, confira wcerr.flags
e unitbuf
.
Exemplo
Confira cerr
para ver um exemplo de como usar wcerr
.
wcin
Especifica o fluxo global wcin
.
extern wistream wcin;
Valor de retorno
Um objeto wistream
.
Comentários
O objeto controla extrações da entrada padrão como um fluxo largo. Após o objeto ser criado, a chamada wcin.tie
retorna &wcout
.
Exemplo
Confira cerr
para ver um exemplo de como usar wcin
.
wclog
Especifica o fluxo global wclog
.
extern wostream wclog;
Valor de retorno
Um objeto wostream
.
Comentários
O objeto controla inserções armazenadas em buffer na saída de erro padrão como um fluxo largo.
Exemplo
Confira cerr
para ver um exemplo de como usar wclog
.
wcout
Especifica o fluxo global wcout
.
extern wostream wcout;
Valor de retorno
Um objeto wostream
.
Comentários
O objeto controla inserções na saída padrão como um fluxo largo.
Exemplo
Confira cerr
para ver um exemplo de como usar wcout
.
Instâncias de CString
em uma instrução wcout
devem ser convertidas em const wchar_t*
, conforme mostrado no exemplo a seguir.
CString cs("meow");
wcout <<(const wchar_t*) cs <<endl;
Para obter mais informações, consulte Operações CString básicas.
Confira também
Referência de Arquivos de Cabeçalho
Acesso Thread-Safe na Biblioteca Padrão C++
Programação de iostream
Convenções de iostreams