과제를 위해이 프로그램에서 작업 중이므로 답변을 원하지 않습니다 ... 올바른 방향으로 밀기 만하면됩니다.사용자가 입력 한 값을 반환하지 않는 함수
사용자가 3 자리 ID (필수)를 입력하고 그 달에 사용 된 KWh의 금액을 입력하는 프로그램을 작성했습니다. 해당 기준을 입력하면 요약 요약과 사용자 당 해당 월의 비용이 인쇄됩니다. 그리고 더 이상 입력 할 ID가 없는지 묻는 루프 안에 있습니다. 내가 루프가 제대로 작동하려면 얻을 수
#include <iostream>
#include <string>
#include <iomanip>
#include <windows.h>
using namespace std;
//function prototypes
string get_user_ID();
int get_cust_kwh();
string display_cust_data();
int main()
{
string userID;
int userKWH;
char answer;
while ((answer !='N')&&(answer !='n')){
userID = get_user_ID();
userKWH =get_cust_kwh();
display_cust_data();
cout << "\n\nWould you like to add another utility ID? : (Y or N)";
cin >> answer;
}
}
system("pause")
return 0;
,하지만 내 기능은 사용자가 입력 값을 반환 할 것 같지 않습니다
다음은 내 개방 코드 및 루프 구조입니다. 내가 기능에 익숙하지 않아서, 어리석은 실수 일 것이라고 확신하지만, 나를 미치게 만들었다. 함수는 다음과 같습니다.
**********function definitions**********
string get_user_ID(){
string usrID;
cout << "\n\nPlease enter in your 3-digit utility ID: ";
cin >> usrID;
return usrID;
}
int get_cust_kwh(){
int usrKWHs;
cout << "Please enter the total KWH used for the month: ";
cin >> usrKWHs;
return usrKWHs;
}
string display_cust_data(){
string usrID;
int usrKWHs;
double userCharge;
cout << "\n\nUSER ID KWHours Charge($)\n";
cout << fixed << setprecision(2);
cout << usrID << " " << usrKWHs << " " << userCharge << endl;
}
함수의 변수가 사용되는 방식과 관련이 있습니다.
주셔서 감사합니다.
팁 : 디버거를 단계별로 실행하십시오. 버그가있는 함수로 들어가면 문제가 분명해진다. –
마지막 함수의 반환 형식은'string'이지만'return' 문은 없습니다. 그리고 내부의 모든 변수는 지역 변수이므로 main에 범위가 지정된 변수를 전달해야합니다. – ChiefTwoPencils
일반적으로'cin >>'을하고 싶지는 않습니다. cin은 typechecking이나 아무것도하지 않으며 그 타입의 호출은 이상하게 만들 수 있습니다. 또한, 사용자가 초기화 한 vars를 인쇄하지 않습니다. 방금 작성한 초기화되지 않은 변수를 인쇄하고 있습니다. 마지막 방법을 잘 살펴보십시오. –
steveg89