Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Console visual c++ 7.1

4 réponses
Avatar
Lahsen
Salut,

j'exécute un programme simple:


...

int main()
{
cout << " Bonjour..." << "\n";

// ici, il me manque quelque chose pour garder la console à //
l'écran?

return 0;
}

Le problème c'est que la console s'affiche et disparaît aussitôt!!!?

J'ai vu que dans Dev-cpp il y'a:
sytem("Pause")
qui permet de garder la console à l'écran.

est ce qu'il y'a un équivalent pour visual c++?
J'ai cherché dans la msdn et sur le site de microsoft mais je n'ai rien
trouvé.

Merci pour vôtre aide.

4 réponses

Avatar
Christian ASTOR
Lahsen wrote:

Le problème c'est que la console s'affiche et disparaît aussitôt!!!?

J'ai vu que dans Dev-cpp il y'a:
sytem("Pause")
qui permet de garder la console à l'écran.

est ce qu'il y'a un équivalent pour visual c++?



system("Pause");
ou
getchar();
ou
[Ctrl][F5]
...
Avatar
Lahsen
Christian ASTOR a écrit :
Lahsen wrote:

Le problème c'est que la console s'affiche et disparaît aussitôt!!!?

J'ai vu que dans Dev-cpp il y'a:
sytem("Pause")
qui permet de garder la console à l'écran.

est ce qu'il y'a un équivalent pour visual c++?



system("Pause");
ou
getchar();
ou
[Ctrl][F5]
...



Merci,
system("pause");
fonctionne bien:-)

mais j'ai un autre petit problème:
Comment vider le tompon du flux entrant: cin?

je l'utilise deux fois de suite

vector<int> vInt;
copy(istream_iterator<int>(cin),
istream_iterator<int>(),
back_inserter(vInt));
copy(vInt.begin(), vInt.end(), ostream_iterator<int>(cout,
"n"));
cout << endl;


istream_iterator<string> first(cin), last;
deque<string> col(first, last);
copy(col.begin(), col.end(), ostream_iterator<string>(cout, " "));
cout << endl;

et le deuxième affichage m'affiche en premier le caractère de fin de la
première entrée standard ( cin)!!!
Avatar
Pierre Maurette
Christian ASTOR, le 25/07/2007 a écrit :
Lahsen wrote:

Le problème c'est que la console s'affiche et disparaît aussitôt!!!?

J'ai vu que dans Dev-cpp il y'a:
sytem("Pause")
qui permet de garder la console à l'écran.

est ce qu'il y'a un équivalent pour visual c++?



system("Pause");
ou
getchar();
ou
[Ctrl][F5]
...



for(;;);
ou
while(1);

Bon, faut faire Ctrl C après ;-)

--
Pierre Maurette
Avatar
Pierre Maurette
Lahsen, le 24/07/2007 a écrit :
Salut,

j'exécute un programme simple:


...

int main()
{
cout << " Bonjour..." << "n";

// ici, il me manque quelque chose pour garder la console à //
l'écran?

return 0;
}

Le problème c'est que la console s'affiche et disparaît aussitôt!!!?

J'ai vu que dans Dev-cpp il y'a:
sytem("Pause")
qui permet de garder la console à l'écran.

est ce qu'il y'a un équivalent pour visual c++?
J'ai cherché dans la msdn et sur le site de microsoft mais je n'ai rien
trouvé.



Vous lancez sans doute votre .exe par double-clic. Ce n'est pas la
bonne solution à priori.
L'IDE de Microsoft - apparemment - lance une console, dans laquelle il
lance le programme et ajoute lui-même le PAUSE. Comme s'il lançait un
.bat:

programName (ou CALL programName)
PAUSE

C'est donc transparent. Si vous voulez lancer par double-clic, vous
pouvez d'ailleurs écrire ce .bat et double-cliquer dessus. Il y a sans
doute d'autres solutions.

Mais le mieux est d'ouvrir une invite de commandes (une console) dans
le répertoire de l'exe à tester. Vous lancez une fois puis vous
rappelez avec la flèche vers le haut, et vous avez accès aux sorties
précédentes (dans les limites du buffer d'écran que vous pouvez
paramétrer).

Vous pouvez même ouvrir directement la console au bon endroit à partir
de l'explorateur en bricolant la BdR, ou en lançant ces .reg:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryshellCmdHere]
@="Invite de commande ici"

[HKEY_CLASSES_ROOTDirectoryshellCmdHerecommand]
@="cmd.exe /k cd ""%1"""


et celui-ci, moins utile:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDriveshellCmdHere]
@="Invite de commande ici"

[HKEY_CLASSES_ROOTDriveshellCmdHerecommand]
@="cmd.exe /k cd ""%1"""

--
Pierre Maurette