Pergunta

  1. De acordo com a referência, se eu usar ifstream infile ( "test.txt" , ifstream::in ); vai Allow input operations on the stream. Mas o que são alguns dos exemplos das "operações de entrada"?
  2. é ifstream infile ( "test.txt" , ifstream::in | ifstream::binary ); a sintaxe direito de usar vários sinalizadores?
  3. Será que vai fazer a diferença se eu mudar ifstream:: para iso::?

Obrigado

Foi útil?

Solução

  1. De acordo com a referência, se eu usar infile ifstream ( "test.txt", ifstream :: in); Ele permitirá entrada operações no fluxo. Mas o que são alguns dos exemplos do "input operações "?

Leitura de um arquivo que significaria tudo um fluxo de entrada pode suportar. Veja as funções de membro istream. Normalmente, você pode fazer as duas coisas formatado (usando >>) e não formatado lê (usando read). Lembre-se que ifstream é uma especialização do modelo basic_ifstream para o tipo char. Dependendo de suas necessidades, dizer para ler UTF 16 arquivo codificado, você pode ter que usar uma especialização diferente (wifstream) ou mesmo usar um local especial (leia este para saber mais sobre locais).

  1. É infile ifstream ( "test.txt", ifstream :: nos | ifstream :: binário); a sintaxe direito de uso múltiplo bandeiras?

Sim.

  1. Será que vai fazer a diferença se eu mudar ifstream :: para iso ::?

Não.

Outras dicas

operações de Fluxo são extraction << e insertion >>. Quando você faz o seguinte assumindo file é do tipo fstream:

file << 5 << 6.5 << "Hello World!"; // insertion of data (output)
file >> x >> y >> str; // exaction of data (input)

Você poderia também, lidar com a stream como um binary stream. Nesse caso, ele realmente não se parece com um "stream" de dados, mas que lhe dá acesso aleatório aos dados. Em alguns casos, você não pode usar o modo binário, especialmente se seus dados não está disponível como uma corrente de rede. Inserção e extração, são os dois principais operações sobre fluxos.

ifstream é criado como um input stream por padrão. Então, std::ios::in é redundante neste caso. Você está usando as bandeiras corretamente.

Todos os fluxos Herdar do ios. Assim, as bandeiras estão disponíveis em ambos os lugares, você pode recuperá-los de ios diretamente ou de fstream.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top