Modos abertos em c ++

Video: Lendo dados de arquivos em C [parte #1][HD]

Esta tabela mostra os diferentes modos em C ++ que são possíveis quando se abre um ficheiro. No entanto, você precisa responder a três questões básicas cada vez que você abrir um arquivo:

  • Você quer ler a partir do arquivo ou gravar o arquivo? Usar ifstream para ler e ofstream para escrever. Se você pretende tanto gravar e ler a partir do mesmo arquivo, use o fstream e de modo ajustado para em | fora, mas boa sorte - é muito melhor para escrever para um arquivo completamente e, em seguida, fechá-lo e reabri-lo para a leitura como um objeto separado.

  • Se você está escrevendo para o arquivo e ele já existe, você quer adicionar aos conteúdos existentes (caso em que, aberto com comeu definido) ou truncar o arquivo e começar de novo (em que caso de uso trunc)?

    Video: Cómo instalar WinBGIm librería Graphics en Dev C++ 5.9 Windows 10/8.1/8/7

  • Você está lendo ou escrevendo texto ou dados binários? Ambos ifstream e ofstream padrão para o modo de texto. Usar binário modo se você estiver lendo ou gravando dados em bruto, não-texto.

Constantes que controlam como os arquivos são abertos
BandeiraSignificado
ios_base :: appProcuramos EOF antes de cada gravação.
ios_base :: comeuProcuramos EOF imediatamente após a abertura do arquivo, se ele
existe.
ios_base :: binárioAbrir arquivo no modo binário (alternativa é modo de texto).
ios_base :: noarquivo aberto para a entrada (implícita para istream).
ios_base :: foraAbrir arquivo para saída (implícita para ostream).
ios_base :: truncTruncar arquivo, se existir (padrão para ostream).


A principal diferença entre o modo texto e binário está na maneira que novas linhas são tratadas. O sistema operacional Unix foi escrito na época em que máquinas de escrever ainda estavam na moda (quando era chamado “escrever” em vez de “digitação”). Unix terminou frases com um avanço de linha seguida por um retorno do carro.

sistemas operacionais posteriores não viu nenhuma razão para continuar usando dois caracteres para terminar uma frase, mas eles não poderiam concordar com qual personagem de usar. Alguns usam o retorno de carro, outros usaram o avanço de linha, nova linha agora renomeada. O padrão C ++ é a única nova linha.

Quando um arquivo é aberto no modo de texto, biblioteca C ++ converte o caractere de nova linha única em que é apropriado para seu sistema operacional na saída, se é um retorno de carro mais alimentação de linha, um único retorno de carro, um avanço de linha, ou algo completamente diferente. Ele executa a conversão oposta ao ler um arquivo. A biblioteca C ++ faz nenhuma dessas conversões para um arquivo aberto em modo binário.

Sempre use o modo binário ao manipular um arquivo que não é em formato legível. Caso contrário, se um byte no fluxo de dados só acontece de ser o mesmo que um retorno de carro ou um avanço de linha, o arquivo I / O da biblioteca irá modificá-lo.


Publicações relacionadas