我正在爲這個任務開發這個程序,所以我不想得到答案......只是朝正確的方向推進。函數沒有返回用戶輸入的值
我已經編寫了一個程序,用戶在這個程序中輸入一個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;
}
我在想使用函數中的變量的方式。
感謝您的任何推動,你可以給!
提示:使用調試器進行操作。問題應該是顯而易見的,因爲你用bug來進入函數。 – 2012-08-07 20:25:14
你的最後一個函數的返回類型是'string',但沒有'return'語句。而且裏面的所有變量都是本地的,你需要傳遞在main中作用域的變量。 – ChiefTwoPencils 2012-08-07 20:26:24
一般你不想做'cin >>',cin不會進行類型檢查或任何類型的調用會導致奇怪。另外,您不打印您初始化的變量。您正在打印剛剛創建的未初始化變量。仔細看看你最後的方法。 –
steveg89
2012-08-07 20:26:49