저는 처음 C++ 프로그래머이며이 프로그램은 제 두 번째 프로그램입니다 ... 달러와 유로 간 간단한 계산기입니다. 내가 가진 문제는 NaN 값을 넣으면 그렇게 말하고 다시 묻지 만 종료한다는 것입니다. 누군가가 다른 유형을 입력 할 때까지 기다리는 방법을 아는 사람이 있습니까? 또한 두 번째 cin >> user_dollar에서 "오버로드 된 함수에 대한 참조를 확인할 수 없습니다. 그것을 부르는 것을 의미 했습니까? "이것은 너무 길고 감사합니다. 죄송합니다.NaN 입력을받은 후 C++ 프로그램에서 입력을 다시 묻습니다.
다음은 제 코드입니다. 내 MacBook Pro에서 Xcode를 사용하고 있습니다.
#include <iostream>
using namespace std;
int main() {
string choice;
int user_dollar;
int user_euro;
cout << "Dollars to Euros (type ‘Dollars’) or Euros to dollars (type ‘Euros’)? ";
cin >> choice;
if (choice == "Dollars" || choice == "dollars") {
cout << "Enter dollar amount: ";
cin >> user_dollar;
if (isdigit(user_dollar) != true){
cout << "That’s not a number... " << endl;
cout << "Enter dollar amount: " << endl;
*cin >> user_dollar;*
}
else {
cout << "That is " << user_dollar/1.13 << " Euros." << endl;
}
}
else if (choice == "Euros" || choice == "euros") {
cout << "Enter Euro amount: ";
cin >> user_euro;
cout << "That is " << user_euro * 0.89 << " dollars." << endl;
}
}
1. 프로그램에 루프가 없습니다. 뭔가 '사실'이라고 물어보기를 원합니다. 2.'std :: isdigit'에 대한 스펙을 읽으십시오. – philipxy
안녕하세요, 귀하의 빠른 답장을 보내 주셔서 감사합니다! 'if '대신'while '을 넣으면 "That is a number ..."와 "dollar amount 입력 :"이 끝없이 인쇄됩니다. 또한'std :: isdigit'이 의미하는 것이 확실하지 않습니다 ... – Minnow
1. 언제 멈출 지 결정하십시오. 그 동안 반복하지 마라. (루프 안에서 당신이하고 싶은 일을하십시오. 맨 아래에 다음 테스트를 할 준비가되어 있는지 확인하십시오.) 2. isnan (x)는 x! = x는 x가 NaN임을 의미합니다. std :: isnan을 사용하여 다시 검색하십시오. 3. std :: isdigit을 사용하여 검색하십시오. 4. std :: cin을 사용하여 다시 검색하십시오. 그것이 무엇인지 모르는 한 함수를 호출하지 마십시오. 그렇지 않으면 왜 그것을 부르는거야? (수사학) – philipxy