Wednesday 2 August 2017

Opções Cin Binário


Em um sistema Unix / POSIX, você pode usar o método cin. get () para ler byte por byte e salvar os dados em um contêiner como um std :: vectorltunsigned intgt. Ou você pode usar cin. read () para ler uma quantidade fixa de bytes em um buffer. Você também pode usar cin. peek () para verificar se há indicadores de fim de dados. Lembre-se de evitar usar a sobrecarga do operador para este tipo de operação. Using operadorgtgt irá causar quebras ocorrer sempre que um caractere delimitador é observado, e ele também removerá o caractere de delimitação do próprio fluxo. Isso inclui todos os valores binários que são equivalentes a um espaço, tabulação, etc. Assim, os dados binários que você acaba armazenando a partir de std :: cin usando esse método não corresponderão ao fluxo binário de entrada byte-by-byte. A maioria das outras funções membro da classe istream são usadas para executar entradas não formatadas, ou seja, nenhuma interpretação é feita sobre os caracteres obtidos a partir da entrada. Essas funções de membro podem obter um número determinado de caracteres da seqüência de caracteres de entrada (get. Getline. Peek. Read. Read.). Como Lou Franco assinalou, std :: cin isnt aberto com std :: iosbase :: binário, mas uma dessas funções pode chegar perto do comportamento que você está procurando. Respondeu Sep 28 11 at 18:26 Cuidado para comentar sobre onde eu errei anônimo downvoter ndash luke Sep 28 11 às 18:32 pode chegar perto de você. Ele também pode colocá-lo em problemas, porque o OS / biblioteca tem o direito de fazer conversões de linha-final que potencialmente corromper seus dados binários. Não está claro para mim que você leu 39read39 / 39readsome39 ou mesmo diretamente de rdbuf () (o buffer de fluxo) não é já transformado desta forma ndash sehe set 28 set 11 às 19:04

No comments:

Post a Comment