L'intention du programme suivant consiste à enregistrer un seul caractère majuscule dans testvar code>. Cependant, lorsqu'il est exécuté, le caractère d'origine est sorti à côté du caractère correct. Qu'est-ce qui cause cela, et comment puis-je empêcher cette occurrence?
3 Réponses :
Pour résoudre, vous pouvez essayer ceci: p> puchar code> imprime un caractère et < Code> COUT CODE> Un autre à stdout code>.
Ceci devrait être ce que vous voulez
int main() {
string userCustom;
char testVar;
cout << "Would you like to test a custom square?" << endl;
cout << "Enter \"yes\" or \"no\"" << endl;
cin >> userCustom;
testVar = toupper(userCustom.at(0));
cout << testVar << endl;
}
Premier caractère (majuscule) est émis par la fonction de putchar, deuxième - par cout. Pour prévenir, commenter la putchar, soit Cout. P>
Vous demandez d'imprimer deux caractères et deux caractères sont imprimés.
Quelle est votre entrée et votre sortie?
Vous imprimez le premier caractère de la chaîne en hausse avec Stdio, puis imprimez le premier caractère comme lu avec iostreams. Mélanger comme ça fonctionne mais est un peu inhabituel à faire dans la même fonction.
Notez que
TOUPPER code> ne change pas son argument. Vous avez besoin deTestVar = TUPPER (Usercustom [0]); code> pour obtenir le caractère majuscule.Veuillez extraire et fournir un exemple de reproductible minimal , qui peut être compilé et qui ne contient rien qui n'est pas nécessaire pour démontrer votre question. En tant que nouvel utilisateur, prenez également le tour et lisez Comment demander . BTW:
puchar () code> etCOUT code> Ne mélangez pas trop bien. Restez avec C ++ Stream io de préférence.Êtes-vous dans la même classe que Cette question a > Asker?