Bonjour,

J'ai tapé le code ci-dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h" //obligatoire sous Visual C++ 2005
#include <iostream> //cin et cout
#include <string> //classe string
#include <vector> //classe vector
#include <conio.h> //fonction getch()
 
using namespace std;
 
int main(void)
{
    string c;
    vector<string> v;
    cout << "Bonjour" << endl;
    c="Vous avez écrit:";
    while ( c != "Q"){
        v.push_back(c);
        cout << "Entrez du texte" << endl << "entrez Q pour quitter" << endl ;
        cin >> c;
        cout << endl;
    }
    for (int i=0; i<v.size(); i++)
        cout << v[i] << endl;
    getch();
}


J'ai tapé exactement: Bonjour, ENTREE C'est moi ENTREE Coucou
Or, vous voyez que entre "C'est moi" et "Coucou", cout s'est exécuté deux fois. Pourquoi?

Que se passe-t-il?

Merci d'avance,
ProgVal

PS: Je viens également de remarquer, après avoir exécuté la boucle for que le programme avait réagit comme si j'avais appuyé sur Enter entre "C'est" et "moi".

EDIT2: Je viens de comprendre! cout s'exévute autant de fois qu'il y a de mots tapés, car cin sépare les mots. Comment faire pour l'éviter