EOF
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

_setmode

définit le fichier à mode de traduction.

int _setmode (
   int fd,
   int mode 
);
fd

descripteur de fichier.

mode

nouvel à mode de traduction.

En cas de réussite, retourne un en mode de traduction précédent.

Si des paramètres incorrects sont passés à cette fonction, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres. Si est autorisé à l'exécution de se poursuivre, le retour de cette fonction - 1 et définit errno à l'un ou l'autre EBADF, qui indique un descripteur de fichier valide, ou à EINVAL, qui indique un argument non valide d' mode .

Pour plus d'informations sur ces éléments et d'autres codes de retour, consultez _doserrno, errno, _sys_errlist, et _sys_nerr.

La fonction d' _setmode définit à mode l'à mode de traduction du fichier indiqué par fd. Passer _O_TEXT comme mode de texte des jeux d' mode (autrement dit, traduit). Les combinaisons de retour-ligne de chariot (CR-LF) sont traduits en caractère unique de saut de ligne lors de l'entrée. Les caractères de saut de ligne sont traduits en combinaisons de CR-LF sur la sortie. Passant le mode (non traduit) binaire des jeux d' _O_BINARY , dans lequel ces traductions sont supprimées.

Vous pouvez également passer _O_U16TEXT, _O_U8TEXT, ou _O_WTEXT pour activer le mode Unicode, comme indiqué dans le deuxième exemple plus loin dans ce document. _setmode est généralement utilisé pour modifier la valeur par défaut à mode de traduction d' stdin et d' stdout, mais vous pouvez l'utiliser sur un fichier. Si vous appliquez _setmode au descripteur de fichier pour un flux, appelez _setmode avant d'exécuter toutes les opérations d'entrée ou de sortie sur le flux de données.

Mise en garde Attention

Si vous écrivez des données à un flux de fichiers, videz explicitement le code à l'aide de fflush avant d'utiliser _setmode pour modifier le mode. Si vous ne vide pas code, vous pouvez obtenir un comportement inattendu. Si vous n'avez pas écrit des données dans le flux de données, vous ne devez pas vider code.

routine

en-tête requis

en-têtes facultatifs

_setmode

<io.h>

<fcntl.h>

Pour plus d'informations de compatibilité, consultez compatibilité.

// crt_setmode.c
// This program uses _setmode to change
// stdin from text mode to binary mode.


#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main( void )
{
   int result;

   // Set "stdin" to have binary mode:
   result = _setmode( _fileno( stdin ), _O_BINARY );
   if( result == -1 )
      perror( "Cannot set mode" );
   else
      printf( "'stdin' successfully changed to binary mode\n" );
}
« stdin » a été changé en mode binaire
// crt_setmodeunicode.c
// This program uses _setmode to change
// stdout to Unicode. Cyrillic and Ideographic
// characters will appear on the console (if
// your console font supports those character sets).

#include <fcntl.h>
#include <io.h>
#include <stdio.h>

int main(void) {
    _setmode(_fileno(stdout), _O_U16TEXT);
    wprintf(L"\x043a\x043e\x0448\x043a\x0430 \x65e5\x672c\x56fd\n");
    return 0;
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.