recherche

Maison  >  Questions et réponses  >  le corps du texte

c++ - Problème avec l'objet de flux d'entrée cin rejetant les caractères non typés

La question nécessite d'écrire une instruction de boucle while. Chaque boucle lit deux entiers et les pousse dans le vecteur. Lorsque '|' est entré, le programme se termine maintenant que la question nécessite la saisie de deux types de caractères différents.

#include <iostream>

using namespace std;

int main() {

    int num_1, num_2;
    char stop;
    while (cin >> stop) {
        if (stop == '|') {
            break;
        } else {
            cin >> num_1 >> num_2;
            cout << num_1 << " " << num_2 << endl;
        }
    }

    return 0;
}

Le programme ci-dessus est une solution à laquelle je peux penser. Pour le moment, vous pouvez utiliser | pour terminer la boucle, mais il y a un problème ici. L'objet de flux d'entrée ignorera le premier nombre lu (car 1 n'est pas un type char). )

input: 123 56
output: 23 56

S'il vous plaît dites-moi si vous avez d'autres solutions, merci~~~

仅有的幸福仅有的幸福2780 Il y a quelques jours1032

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-06-27 09:21:12

    C'est fait, enregistrez-le simplement dans le vecteur et écrivez-le vous-même. Le problème est résolu pour vous.

    #include <iostream>
    using namespace std;
    
    
    int main(int argc, const char * argv[]) {
        int num_1, num_2;
        char stop;
        while (cin >> stop) {
            if (stop == '|') {
                break;
            } else {
                num_1 = stop-'0';
                cin >> num_2;
                cout << num_1 << " " << num_2 << endl;
            }
        }
        return 0;
    }

    répondre
    0
  • Annulerrépondre