Comprendre l'entrée d'espace en C
En C , l'opérateur d'extraction (cin) ignore par défaut les caractères d'espacement lors de la lecture de l'entrée à partir de l'entrée standard. C'est pourquoi les espaces sont ignorés lorsque l'on tente de récupérer des caractères d'espace directement à l'aide d'un tableau de caractères comme dans le code donné.
Gérer les espaces avec noskipws
Pour lire également les espaces comme les autres caractères d'espacement, vous pouvez utiliser le manipulateur noskipws :
cin >> noskipws >> a[i];
Ce manipulateur demande à cin de lire tous les caractères, y compris espace blanc. Cependant, cela n'est peut-être pas idéal dans votre cas, car il lira également d'autres caractères d'espacement tels que les tabulations et les nouvelles lignes.
Utilisation de get() pour les caractères individuels
Une manière plus précise de lire les caractères d'espacement et d'autres caractères individuels consiste à utiliser la fonction get() :
cin.get(a, n);
Cette fonction lit n caractères du flux d'entrée et stocke les dans le tableau a. Il arrête la lecture soit lorsqu'il rencontre un caractère de nouvelle ligne (n), soit après avoir lu n-1 caractères. Notez qu'il est important d'utiliser un tableau de taille (n) suffisante pour accueillir tous les caractères.
En utilisant get(), vous pouvez vérifier les caractères individuels et rechercher spécifiquement le caractère espace :
if (a[i] == ' ') // Do something when a space is encountered
Cette méthode vous permet de gérer les espaces et autres caractères de manière plus sélective sans avoir besoin de désactiver le saut d'espaces globalement avec noskipws.
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!