1 votes

Utiliser wmemset en c++

Lors de l'utilisation de l'API wmemset (http://msdn.microsoft.com/en-us/library/1fdeehz6(VS.80).aspx) pour le paramètre de compte, dois-je multiplier la longueur de la chaîne cible par 2 et fournir ou est-ce que wmemset se charge lui-même de la conversion?

3voto

Alok Singhal Points 33073

La réponse est non. Ils ont un exemple sur la page à laquelle vous avez lié :

#include 
#include 

int main( void )
{
    wchar_t buffer[] = L"This is a test of the wmemset function";

    wprintf( L"Before: %s\n", buffer );
    wmemset( buffer, '*', 4 );
    wprintf( L"After:  %s\n", buffer );
}

Output:

Before: This is a test of the wmemset function
After:  **** is a test of the wmemset function

Bien sûr, la destination doit avoir suffisamment d'espace (sizeof(wchar_t) fois le nombre de caractères écrits).

1voto

sharptooth Points 93379

Non, vous ne devriez pas. La longueur est en caractères de chaîne (wchar_t), pas en octets (char). Vous devez passer le nombre de caractères larges.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X