2014-10-04 61 views
-5

我試圖將一個int值傳遞給一個函數,該函數向用戶返回一個char值。將char值和int值傳遞到一個函數

像這樣的事情

// this is the function call 
    option = function1(cus_num) 

    char function1 (int num1){ 
    char test 
    // displays options for user to input char 

    cout << "Customer #" << num1 << "plese enter an option"; 
    cin >> test; 

    return test; 

但每次我這樣做的時候,該NUM1顯示爲#0x47e7484替代的價值。我知道該函數設置爲返回一個字符,但我不能傳遞一個int給它嗎?

+2

請示出了[完整最小示例](https://stackoverflow.com/help/mcve)。 – 5gon12eder 2014-10-04 21:33:46

+0

「test」(第一次)後面缺少';'。 – 2014-10-04 21:50:36

回答

1

你可以嘗試:

cout << "Customer #" << dec << num1 << "plese enter an option"; 

給定的值的性質,我懷疑別的東西是錯誤的。

+0

感謝您的回覆。這似乎並不奏效。我正在檢查我的代碼,看看還有什麼可能是錯的。如果可以的話,我會給你一個+1! – srallen87 2014-10-04 21:39:20

+0

如上所述,我懷疑在你的代碼中還有別的東西會導致腐敗。如果你之前做過十六進制,dec只能工作。 – user3344003 2014-10-04 21:45:26

+0

由於在製作'cout'之前'dec'從未設置過,您會收到意想不到的行爲...... – 2014-10-04 21:51:10

1

此代碼相同的,並且是給正確的輸出: -

#include <iostream> 

using namespace std; 
char function1 (int num1) 
{ 
    char test ; 
    // displays options for user to input char 
    cout<<"Customer #"<<num1<<" please enter an option: "; 
    cin>> test; 
    cout<<"\n";  //Just to make output cleaner 
    return test; 
} 

int main() 
{ 
    char a; 
    a = function1(3); 
    cout<<a; 
}