Je suis novice en programmation, et j'essaie d'apprendre le C++ par moi-même, et je suis "Programmation des principes et de la pratique en utilisant C++".Pourquoi "keep_window_open()" n'attend pas qu'un caractère soit entré?
Je tentais de faire un exercice qui, après diverses autres mesures, m'a demandé de
"... changer le corps de la boucle de sorte qu'il se contente de lire une double chaque fois. Définir deux Les variables à suivre sont les plus petites et la valeur la plus grande que vous ayez vue jusqu'à présent.Si vous écrivez la valeur chaque fois, écrivez la plus petite valeur possible jusqu'à présent. c'est le plus grand jusqu'ici, écrivez le plus grand jusqu'ici après le nombre ".
j'ai écrit le code suivant à ce jour:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
inline void keep_window_open() { cout<<"\nType a character to exit: "; char ch; cin>>ch; }
int main()
{
double val1 = 0, smallest = 0, largest = 0;
int flag = 0;
while (cin >>val1) {
if (val1=='|')
break;
else
cout <<val1 <<'\n';
if (flag==0) {
smallest = val1;
cout <<smallest <<" it's the smallest value so far.\n";
}
if (val1<smallest) {
smallest = val1;
cout <<smallest <<" it's the smallest value so far.\n"; }
else if (val1>largest) {
largest = val1;
cout <<largest <<" it's the largest value so far.\n"; }
++flag;
}
keep_window_open();
return 0;
}
Mon problème est que quand je entrer un caractère, par exemple « C », le programme se termine, bien que le programme devrait se terminer, hypothétiquement, que quand je rentre « | », et je reçois:
c
Type a character to exit:
Process returned 0 (0x0) execution time : ...
Press any key to continue.
et "keep_window_open()"
n'attend pas un caractère à saisir. Je ne peux pas comprendre ce qui se passe, et pourquoi. Est-ce que quelqu'un a une idée?