Utilisation de type std :: String Code> Pour accepter une phrase, pour la pratique (je n'ai pas travaillé avec des chaînes en C ++) Je vérifie si un personnage est une voyelle ou non. J'ai eu ceci:
std::string analyse = "";
std::cin >> analyse;
4 Réponses :
Je ne peux pas dire au code que vous avez collé, mais je vais sortir sur un membre et deviner que vous lisez dans la chaîne à l'aide de l'opérateur d'extraction de flux (Stream >> String). < P> L'opérateur d'extraction de flux s'arrête quand il rencontre des espaces blanche. P>
Si ce n'est pas ce qui se passe, pouvez-vous nous montrer comment vous remplissez votre chaîne et quels sont ses contenus? P>
Si j'ai raison, vous allez vouloir une méthode différente de lecture du contenu dans la chaîne. std :: getline () est probablement la méthode la plus simple de lecture d'un fichier. Il s'arrête chez les nouvelles lignes au lieu de chez WhitSpace. P>
Edition basée sur la question modifiée:
Utilisez ceci (DoubleCheck la syntaxe. Je ne suis pas devant mon compilateur.): p> Ceci devrait arrêter de lire lorsque vous appuyez sur "Entrée". P> p>
Si vous souhaitez lire une ligne entière (y compris les blancs), vous devriez lire à l'aide de GetLine. Schématiquement, il ressemble à ceci:
string s; getline( cin, s ); cout << "You entered " << s << endl;
GetLine fonctionne bien. Heureux que ce n'était pas un problème aléatoire, aide-moi à apprendre.
Je suppose que vous lisez votre chaîne avec quelque chose comme Vous pouvez lire une ligne d'entrée entière à la place avec votre_stream >> votre_string; code>. Opérateur
>> code> pour les chaînes est défini pour fonctionner (environ) identique à celui de
scanf code> 'S
% s code> conversion, qui lit jusqu'à ce qu'il rencontre des espaces - Par conséquent,
opérateur >> code> fait la même chose. P>
std :: getline code>. Vous voudrez peut-être aussi regarder un Réponse J'ai posté dans une question précédente (fournit des alternatives à
std :: getline code>). P>
Merci pour le lien de réponse, +1
Le >> code> Opérateur sur un Istream sépare des chaînes sur WhitSpace. Si vous souhaitez obtenir une ligne entière, vous pouvez utiliser
readline (CIN, Destination_string) CODE>. P>
Peut-être que vous avez l'intention getline code> plutôt que
readline code>? Bien qu'il y ait des bibliothèques qui incluent des fonctions nommées
readline code>, ce n'est pas une partie de la bibliothèque standard.
Oui, j'ai l'intention de getline. (Et c'est d'autres langues b> qui utilisent readline, c'est pourquoi je suis confus.)
Ce n'est pas STD :: String, qui peut contenir n'importe quel caractère, y compris les espaces et les nulls. Montrez comment vous lisez dans la chaîne.
Comment définissez-vous
analyser code>? Qu'est-ce que vous obtenez si vous
COUT << Analyse.Length () code>? La chaîne "Aecio" compte-t-elle correctement? Peut-être que le problème est dans le
... code> partie du bloc d'enseil?
Sur un côté .. Stockez la longueur dans une variable (const int CI = analyses.length ();) Les fonctions dans la mauvaise pratique sont une mauvaise pratique.