A função swprintf () em C ++ é usada para gravar uma string ampla formatada em um buffer de string ampla.
A função swprintf () é definida no arquivo de cabeçalho.
protótipo swprintf ()
int swprintf (wchar_t * buffer, size_t size, const wchar_t * format,…);
A função swprintf () grava a string larga apontada por format no buffer. O número máximo de caracteres que podem ser escritos é (tamanho-1).
Depois que os caracteres são gravados, um caractere largo de terminação é adicionado.
O formato de string largo pode conter especificadores de formato começando com% que são substituídos pelos valores das variáveis que são passadas para a função swprintf () como argumentos adicionais.
Parâmetros swprintf ()
- buffer: Ponteiro para o buffer da string para escrever o resultado.
- tamanho: especifique o número máximo de caracteres a serem gravados no buffer, que é tamanho-1.
- formato: um ponteiro para uma string larga terminada em nulo que é gravada em stdout. Consiste em caracteres largos junto com especificadores de formato opcionais começando com%. Os especificadores de formato são substituídos pelos valores das respectivas variáveis que seguem o formato.
O especificador de formato tem as seguintes partes:- Um sinal% principal
- Sinalizadores: um ou mais sinalizadores opcionais que modificam o comportamento de conversão.
- -: Justificar à esquerda o resultado dentro do campo. Por padrão, é justificado à direita.
- +: O sinal do resultado é anexado ao início do valor, mesmo para resultados positivos.
- Espaço: Se não houver sinal, um espaço é anexado ao início do resultado.
- #: Uma forma alternativa de conversão é executada.
- 0: é usado para números inteiros e em ponto flutuante. Os zeros à esquerda são usados para preencher os números em vez de espaço.
- Largura: Um valor opcional * ou inteiro usado para especificar o campo de largura mínima.
- Precisão: um campo opcional que consiste em a. seguido por * ou inteiro ou nada para especificar a precisão.
- Comprimento: um modificador de comprimento opcional que especifica o tamanho do argumento.
- Especificador: um especificador de formato de conversão. Os especificadores de formato disponíveis são os seguintes:
Especificador de formato Descrição % Imprime% c Escreve um único personagem s Escreve uma string de caracteres d ou i Converte um inteiro com sinal em representação decimal o Converte um inteiro sem sinal em representação octal X ou x Converte um inteiro sem sinal em representação hexadecimal você Converte um inteiro sem sinal em representação decimal F ou F Converte o número de ponto flutuante em representação decimal E ou e Converte o número de ponto flutuante em notação de expoente decimal A ou a Converte o número de ponto flutuante em expoente hexadecimal G ou g Converte o número de ponto flutuante em notação de expoente decimal ou decimal n Retorna o número de caracteres escritos até agora por esta chamada para a função. O resultado é escrito no valor apontado pelo argumento p Grava uma sequência de caracteres definida pela implementação definindo um ponteiro.
Portanto, o formato geral do especificador de formato é:Especificador% (sinalizadores) (largura) (. precisão) (comprimento)
- …: Outros argumentos adicionais especificando os dados a serem gravados. Eles ocorrem em uma sequência de acordo com o especificador de formato.
swprintf () Valor de retorno
- Em caso de sucesso, a função swprintf () retorna o número de caracteres escritos, excluindo o caractere largo nulo de terminação.
- Se ocorrer um erro de codificação ou se o número de caracteres a serem gerados for igual ou maior que o tamanho, um valor negativo é retornado.
Exemplo: Como funciona a função swprintf ()?
#include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )
Ao executar o programa, o seguinte será gravado em example.txt:
Algumas letras hebraicas א ב ס ד ת