Ich möchte weiterhin Ganzzahlen in den Vektor P1 eingeben, bis ein Unterbrechungspunkt in diesem Fall 'q' oder 'Q' eingegeben wird. Das Programm läuft, wenn die Breakbedingung erfüllt ist, in eine Endlosschleife. Irgendwelche Ideen auf einer Arbeit herum, alles, was ich sehen kann ist, dass, weil das 'q' oder 'Q' ein Zeichen ist der Integer-Vektor dies als eine Eingabe nimmt, wenn die While-Schleife läuft, an welchem Punkt es Endlosschleifen?While-Schleife beendet nicht C++
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//Declaring Polynomial 1 and 2
vector<int> P1;
vector<int> P2;
int x = 0;
int y = 0;
while (x != 'q'||x != 'Q') {
cout << "Please enter in the first polynomial one value at a time (Press Q when done)...";
cin >> x;
P1.push_back(x);
}
//Also tested with a do while same problem
/*do
{
cout << "Please enter in the first polynomial one value at a time (Press Q when done)...";
cin >> x;
P1.push_back(x);
} while (x != 'q');*/
//Ignore this is for next part of program
vector<int> Res((P1.size() + P2.size()) + 1);
cout << P1.size() << "," << P2.size() << "," << Res.size();
return 0;
}
Die Bedingung 'x! = 'Q' || x! = 'Q'' ist immer wahr. Siehst du warum? –
Nun x beginnt als 0, was nicht q ist, also beginnt es als WAHR, also ist meine Logik das Falsch oder Falsch = Falsch, also läuft es weiter bis x zu 'q' oder 'Q' wird, wenn es FALSCH wird und aus dem ausbricht Schleife sicher? – Tom
Warum ist es Ihrer Meinung nach sinnvoll, eine Integer-Variable mit einem Zeichenliteral zu vergleichen? Probieren Sie diesen Code: 'int x = 'Q'; cout << x; 'Was wird gedruckt? Ist das was du willst oder erwartest? –