Processamento de Cordas crus e cozidos em C ++

Há muitas maneiras de definir literais. Naturalmente, o tipo de informação que afecta um literal é o método mais comum. No entanto, literais também podem ser crus ou cozidos. UMA cru literal recebe a entrada da fonte de aplicação e não interpretá-lo de forma alguma. O que isto significa é que a informação é interpretada caractere por caractere, precisamente como o remetente apresentou-lo.

cozinhado literais interpretar a entrada do remetente e realizar automaticamente todas as conversões necessárias para tornar os dados utilizáveis ​​para o destinatário.

A maneira mais fácil de ver esse princípio em ação é através de um exemplo. o RawAndCooked exemplo mostrado demonstra a técnica usada para criar processamento de corda cru ou cozido.

#incluir usando namespace std-int main () {auto Cozido = "(Olá r n)" - auto Raw = R "(Olá r n)" - cout lt; lt; cozinhado lt; lt; endl-cout lt; lt; Cru lt; lt; endl-}

Na maioria das vezes quando você vê o R n combinação, você sabe que a saída será pedido um retorno de carro e uma combinação de avanço de linha. Este é o método cozido de processamento de uma string.

A cadeia é interpretada e quaisquer caracteres de escape convertido em caracteres de controle (Caracteres que são normalmente considerados como comandos, em vez de dados, tais como o retorno do carro). No entanto, observe como o Cru string é criada. o R na frente da cadeia informa o compilador para criar a variável sem interpretar o conteúdo.

Aqui está a saída que você vê neste exemplo:

 (HelloThere) Olá r n

Observe que o formulário cozido faz a saída do parêntese, mas a forma bruta não. O parêntese é necessária como parte da entrada forma bruta. Como você pode imaginar, a forma cozido emite o R n combinação de caracteres de controle, enquanto que a forma bruta emite os caracteres reais.

menu