Ich bin neu in der Programmierung, und ich versuche, C++ selbst zu lernen, und ich folge "Programmierungsprinzipien und Praxis mit C++".Warum wartet "keep_window_open()" nicht auf die Eingabe eines Zeichens?
Ich habe versucht, eine Übung zu tun, die nach verschiedenen anderen Schritten, mich
"zu
gefragt ... dem Körper der Schleife ändern, so dass es nur ein Doppel jedes Mal liest. Definieren Sie zwei Variablen, um zu verfolgen, welcher der kleinste und welcher der größte Wert ist, den Sie bisher gesehen haben .. Schreiben Sie den Wert jedes Mal durch die Schleife. Wenn es der kleinste Wert ist, schreiben Sie den kleinsten so weit nach der Zahl es ist das größte bisher, schreibe das größte bisher nach der Zahl ".
Ich schrieb den folgenden Code so weit:
#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;
}
Mein Problem ist, dass, wenn ich Eingabe eines Zeichens, z ‚C‘, das Programm beendet, obwohl das Programm sollte, hypothetisch beenden, nur wenn ich eingeben ‚|‘, und ich bekomme:
c
Type a character to exit:
Process returned 0 (0x0) execution time : ...
Press any key to continue.
und "keep_window_open()"
warte nicht, bis ein Zeichen eingegeben werden. Ich kann einfach nicht verstehen, was passiert und warum. Hat jemand eine Ahnung?