이 경우 'q'또는 'Q'의 중단 점이 입력 될 때까지 P1 벡터에 정수를 계속 입력하고 싶습니다. 중단 조건이 충족되면 실행 된 프로그램이 무한 루프로 복잡해집니다. 내가 볼 수있는 모든 아이디어는 'q'또는 'Q'가 문자이기 때문에 while 루프가 어느 지점에서 끝없이 반복 할 때 정수형 벡터가 입력으로 가져 오는 문자입니까?While 루프가 종료되지 않음 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;
}
조건 'x! ='q '|| x! ='Q ''는 항상 참입니다. 왜 보이니? –
글쎄 x은 0이 아닌 q로 시작하므로 TRUE로 시작하므로 내 논리는 false 또는 false = false이므로 x가 'q'또는 'Q'가 될 때까지 계속 실행되어 FALSE가되고 틀림없이 루프? – Tom
왜 정수형 변수를 문자 리터럴과 비교하는 것이 합리적이라고 생각합니까? 이 코드를 사용해보십시오 :'int x = 'Q'; cout << x;'무엇을 인쇄합니까? 이것은 당신이 원하거나 기대하는 것입니까? –