Maison  >  Article  >  développement back-end  >  Conseils et précautions d'utilisation de la fonction scanf en langage C

Conseils et précautions d'utilisation de la fonction scanf en langage C

WBOY
WBOYoriginal
2024-02-24 10:24:08745parcourir

Conseils et précautions dutilisation de la fonction scanf en langage C

Maîtrisez rapidement les compétences et les précautions de la fonction scanf en langage C

En langage C, la fonction scanf est une fonction utilisée pour lire les données de l'entrée standard. Il peut lire de nombreux types de données, tels que des entiers, des nombres à virgule flottante, des caractères, etc. Maîtriser les compétences et les précautions d'utilisation de la fonction scanf vous aidera à traiter les entrées plus efficacement et à améliorer la qualité et la fiabilité de votre code. Ce qui suit présente quelques conseils et précautions concernant la fonction scanf et donne des exemples de code spécifiques.

Astuce 1 : Vérifiez la valeur de retour de la fonction scanf

Lorsque la fonction scanf lit les données, elle renvoie le nombre de paramètres lus avec succès. Lorsque vous utilisez la fonction scanf, vous devez toujours vérifier sa valeur de retour pour vous assurer que la saisie des données a réussi. Si la valeur de retour n'est pas égale au nombre attendu de paramètres, cela signifie que la saisie est erronée et vous devrez peut-être ressaisir ou gérer l'exception correspondante.

Exemple de code :

int num;
if (scanf("%d", &num) != 1) {
    printf("输入有误,请重新输入整数
");
    return;
}

Astuce 2 : Nettoyez le tampon d'entrée

Lorsque vous utilisez la fonction scanf pour lire des caractères ou des chaînes, vous pouvez rencontrer des caractères résiduels dans le tampon d'entrée, entraînant l'omission de l'entrée. Pour nettoyer le tampon d'entrée, vous pouvez utiliser la fonction getchar pour lire et supprimer les caractères résiduels jusqu'à ce qu'un caractère de nouvelle ligne soit lu.

Exemple de code :

char ch;
while ((ch = getchar()) != '
' && ch != EOF);

Astuce 3 : utilisez en toute sécurité %s pour lire des chaînes

Lorsque vous utilisez la fonction scanf pour lire une chaîne, vous devez faire attention à la longueur de la chaîne pour éviter tout débordement. Vous pouvez limiter la longueur de la chaîne en spécifiant le nombre maximum de caractères à lire dans le caractère de contrôle de format %s. En même temps, lorsque vous utilisez %s pour lire une chaîne, la lecture s'arrêtera automatiquement lorsqu'elle rencontrera des caractères d'espacement (espaces, tabulations, nouvelles lignes, etc.), il n'est donc pas nécessaire de traiter en plus la marque de fin de la chaîne.

Exemple de code :

char str[20];
scanf("%19s", str);  // 最多读取19个字符到str中,避免溢出

Astuce 4 : Utilisez le caractère de contrôle de format correct

Lors de l'utilisation de la fonction scanf, vous devez utiliser le caractère de contrôle de format correct pour correspondre au type de données d'entrée afin d'éviter de lire des données erronées. Par exemple, si vous souhaitez lire un nombre à virgule flottante, vous devez utiliser l'opérateur de contrôle de format %f au lieu de l'opérateur de contrôle de format %d.

Exemple de code :

float num;
scanf("%f", &num);  // 读取一个浮点数到num中

Remarque 1 : Séparateur entre les données d'entrée

Lorsque vous utilisez la fonction scanf pour lire plusieurs données d'entrée, vous devez faire attention au séparateur entre les données d'entrée. Par défaut, la fonction scanf sépare les données d'entrée par des caractères d'espacement (espaces, tabulations, nouvelles lignes, etc.). S'il existe d'autres caractères comme délimiteurs entre les données d'entrée, les caractères correspondants doivent être spécifiés dans le caractère de contrôle de format.

Exemple de code :

int num1, num2;
scanf("%d,%d", &num1, &num2);  // 读取两个整数,用逗号分隔

Remarque 2 : L'ordre d'utilisation des caractères de contrôle de format

Lorsque vous utilisez la fonction scanf pour lire plusieurs données d'entrée, vous devez utiliser les caractères de contrôle de format dans l'ordre des données d'entrée. Cela garantit que les données sont lues dans le bon ordre. Si l'ordre d'utilisation des caractères de contrôle de format n'est pas cohérent avec l'ordre des données d'entrée, les données d'entrée peuvent être confondues.

Exemple de code :

int num1, num2;
scanf("%d %d", &num2, &num1);  // 读取两个整数,注意顺序

En résumé, maîtriser les compétences et les précautions d'utilisation de la fonction scanf vous permettra de traiter les saisies plus efficacement. Dans les applications, ces conseils et précautions peuvent être combinés selon des besoins spécifiques pour écrire un code plus robuste et fiable. J'espère que cet article pourra inspirer les lecteurs et améliorer leur capacité à utiliser la fonction scanf en langage C.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn