그래서 사용자가 $를 누른 다음 주 메뉴로 돌아갈 때까지 작업을 계속 진행하려는 주 메뉴가있는 계산기를 만들고 있습니다. 테스트 할 때 코드가 무한 루프에 빠져 버립니다. 나는 무엇을 잘못 했는가? 다음은 하나의 기능에 대한 스 니펫입니다. (메뉴는 무효로 선언됩니다)while 루프를 깨뜨릴 때 무한 루프에 갇힌 경우
float makeSum(float num1, float num2) {
float r = 0;
bool ended = false;
do {
cout << "Please provide the first number: " << endl;
cin >> num1;
if (num1 == '$') {
ended = true;
}
cout << "Please provide the second number: " << endl;
cin >> num2;
if (num2 == '$') {
ended = true;
r = num1 + num2;
cout << "Result: " << r << endl;
} while (!ended);
menu();
return r;
}
표시 할 함수가 빌드되어서는 안되며 닫는 중괄호'}'가 없습니다. –
어떤 상황에서 'float' 유형의 값을 사용자로부터 읽어보고'$ '와 같은 것으로 테스트 할 수 있습니까? 스트리밍 운영자가 부동 소수점 값으로 변환하는 방법을 모르기 때문에 사용자가'$'를 입력하는 것은 확실하지 않습니다. 구현시 ASCII 문자 세트 (또는 호환 가능)를 사용하는 경우 '36'값을 입력하면 '36'이'$ ''의 정수 값이므로 루프가 끝납니다. – Peter