Partage via


_cscanf, , _cscanf_l_cwscanf, ,_cwscanf_l

Lit les données mises en forme à partir de la console. Des versions plus sécurisées de ces fonctions sont disponibles ; voir , , _cwscanf_s_cscanf_s_l, _cwscanf_s_l._cscanf_s

Remarque

Dans Visual Studio 2015, les printf fonctions et scanf la famille de fonctions ont été déclarées comme inline et déplacées vers les en-têtes et <conio.h> les <stdio.h> en-têtes. Si vous migrez du code plus ancien, vous pouvez voir l’erreur de l’éditeur de liens LNK2019 en connexion avec ces fonctions. Pour plus d’informations, consultez l’historique des modifications Visual C++ 2003 - 2015.

Important

Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

int _cscanf(
   const char *format [,
   argument] ...
);
int _cscanf_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Paramètres

format
Chaîne de contrôle de format.

argument
Paramètres facultatifs.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Le nombre de champs qui ont été correctement convertis et assignés. La valeur de retour n’inclut pas les champs qui ont été lus mais qui n’ont pas été affectés. La valeur de retour est EOF pour une tentative de lecture à la fin du fichier. Une EOF valeur peut également être retournée lorsque l’entrée du clavier est redirigée au niveau de la ligne de commande du système d’exploitation. Une valeur de retour de zéro signifie qu’aucun champ n’a été affecté.

Notes

La fonction _cscanf lit les données directement à partir de la console dans les emplacements donnés par argument. La _getche fonction est utilisée pour lire les caractères. Chaque paramètre facultatif doit être un pointeur désignant une variable dont le type correspond à un spécificateur de type dans format. Le format contrôle l’interprétation des champs d’entrée et a le même formulaire et fonction que le format paramètre de la scanf fonction. Alors qu’il _cscanf fait normalement écho au caractère d’entrée, il ne le fait pas si le dernier appel était à _ungetch.

Cette fonction valide ses paramètres. Si le format est NULL, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, errno a la valeur EINVAL et la fonction retourne EOF.

Les versions de ces fonctions avec le suffixe _l sont identiques, sauf qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux du thread actuel.

Mappages de routines de texte générique

Routine TCHAR.H _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tcscanf _cscanf _cscanf _cwscanf
_tcscanf_l _cscanf_l _cscanf_l _cwscanf_l

Spécifications

Routine En-tête requis
_cscanf, _cscanf_l <conio.h>
_cwscanf, _cwscanf_l <conio.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// crt_cscanf.c
// compile with: /c /W3
/* This program prompts for a string
* and uses _cscanf to read in the response.
* Then _cscanf returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int   result, i[3];

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}
1 2 3
Enter three integers: 1 2 3
You entered 3 2 1

Voir aussi

E/S de console et de port
_cprintf, , _cprintf_l_cwprintf, ,_cwprintf_l
fscanf, , _fscanf_lfwscanf, ,_fwscanf_l
scanf_s, , _scanf_s_lwscanf_s, ,_wscanf_s_l
sscanf, , _sscanf_lswscanf, ,_swscanf_l