J'écris actuellement un programme pour faire une simulation de chutes et d'échelles. Pour l'utilisateur, la première chose à apparaître dans la boîte de la console demanderait le nom du joueur 1, et le nom du joueur 2. Évidemment, je pourrais juste faire la cout << "Nom 1?" et Cin comme une variable. Cependant, dans cette affectation, nous recevrons un crédit supplémentaire si nous effectuions une fonction qui prend cette entrée pour l'utiliser dans la fonction principale. En d'autres termes, comment devrais-je écrire une fonction de sorte que, lorsqu'elle est appelée, elle apporte l'entrée que nous sommes revenus? J'ai essayé depuis un moment et je ne peux toujours pas comprendre. Voici un pseudocode de ce que j'essaie de manière optimale, c'est ce que la sortie devrait ressembler lors de l'exécution du programme. P> Quel est le nom du joueur 1? Entrez le nom em> p>
Quel est le nom du joueur 2? Entrez le nom em> p>
exécute le jeu en utilisant les deux noms de joueurs p>
BlockQuote> Désolé pour la question noob, je suis un très nouveau programmeur! Appréciez toute aide que je peux obtenir ici. P> p>
3 Réponses :
Une fonction ne peut renvoyer qu'une seule valeur. Vous pouvez retourner un au lieu de retourner les noms que vous pouvez utiliser des références p> std :: paire
Cela semble super, utilisera dans le futur. Merci! Ne l'ai pas vu auparavant. Cependant, cet enseignant nous donnera juste un 0 sur la mission si nous utilisons quelque chose que nous n'avons pas appris dans ses notes. Nous signalera également au collège de tricherie. Ce qui est ironique parce que plus de la moitié de sa classe échoue, c'est une classe en ligne et ses notes sont terribles. Tant pis. Merci pour votre réponse!
@Adamkeller Vous devriez probablement mentionner cela dans votre question et votre liste tous les outils autorisés C ++. Nous ne pouvons pas connaître vos notes.
@Adamkeller J'ai ajouté une autre fonction à ma question.
Je vois. Utilisation de votre code, j'obtiens maintenant les trois erreurs suivantes: E0308: Plus d'une instance de la fonction surchargée "getplayernames" correspond à la liste des arguments C0282: redéfinition du paramètre formel "Nom du joueur" C0282: redéfinition du paramètre formel "Player1Name"
@Adamkeller je l'ai corrigé
transmettez-les par référence. BOOM, vous n'avez besoin de rien retourner.
Bien que vous puissiez créer une fonction qui lira une chaîne pour vous, vous devez fournir un moyen d'indiquer si la fonction a réussi em> ou échoué em> en lisant et en stockage la chaîne. Sinon, sur une erreur de flux, ou si l'utilisateur génère un manuel Ce n'est pas spécifique à cette fonction de chaîne de lecture, il est vrai avec chaque fonction qui complète une tâche qui dépend du code restant. "Valider, valider, valider" em> est la règle. Un simple reportage entier Dans votre cas, vous vous souciez de savoir si la lecture réussie (qui dépend de qui vous permet de transmettre l'invite à afficher à l'utilisateur, puis retourne in (qui vous permet également d'utiliser la capacité par défaut de concaténer Ceci gérera votre entrée de joueur, y compris la blancheur dans le nom et tout en manipulant un eof code> avec Ctrl + d kbd> (ou ctrl + z kbd> sous Windows), si vous omettre de l'attraper, de mauvaises choses vont se produire. 1 code> sur le succès ou 0 code> sur une défaillance est bien (ou vice-versa, votre choix). BOOL CODE> est également un type simple pour indiquer le succès / l'échec. P> std :: ios_base :: iostate code> après la lecture). La beauté est que vous n'avez pas besoin de vérifier les minuties de .eof (), .Fail () code> ou .bad () code> (bien que vous soyez libre de) (bien que vous soyez libre de), Vous vérifiez simplement le retour de votre fonction d'entrée (à l'aide de getline code> peut être préférable à >> code> pour la manipulation des espaces, ainsi que des caractères étrangers). Ici, vous pourriez simplement faire quelque chose comme: p> true / false code> basé sur si l'appel à getline code> réussit. p> principale () code> Vous pouvez simplement vérifier si votre fonction getstring code> fonction a réussi ou Échec avant de s'appuyer sur les informations de votre chaîne s code>, par exemple p> STD: : chaîne code> dans la formation de l'invite - tant que vous n'avez pas plus de neuf joueurs à l'aide de la méthode ci-dessus) p> EOF code> à l'une des entrées. Un court exemple avec deux joueurs serait: p> $ ./bin/chutes
enter player 1: (stream error or user canceled input)
Une fonction ne peut renvoyer qu'une seule valeur. Vous pouvez retourner un
std :: paire code>