2013-04-26 131 views
0

以下是我的代碼。我希望我的程序能夠輸入輸入單詞的第一個字符並保存爲number1,並將第二個字符保存爲number2。但是,我收到一條錯誤消息。 「轉換,從整體類型指針類型要求reinterpret_cast,C樣式轉換或函數樣式轉換」cin.get和char錯誤信息

char number1; 
char number2; 
int all; 

cout << "Enter romans to change to numbers. " << endl; 
n1 = cin.get(); 
n2 = cin.get(); 
+0

假設你將某個時候,很快就會意識到羅馬數字可以很容易地由兩個以上的字符(或少於兩個),是有特殊原因你'不使用'std :: string'和'std :: getline()'? – WhozCraig 2013-04-26 03:49:37

+0

對於練習,我應該只比較兩個角色,並添加到跑步總數。這是唯一的原因。 – user2105982 2013-04-26 03:51:02

+0

如果這些是指令,它不會改變使用'std :: string'的適當性。只需在迭代器中遍歷字符串時累積總數。 – WhozCraig 2013-04-26 03:53:11

回答

1

沒有什麼錯(語法)的代碼,你已經證明,通過完全以下證明自給自足的例子:

#include <iostream> 

int main(){ 
    char n1; 
    char n2; 
    int total; 

    std::cout << "Enter roman numerals to change to numbers." << std::endl; 
    n1 = std::cin.get(); 
    n2 = std::cin.get(); 
    return 0; 
} 

這既編譯和運行良好,因此你的問題必須在別處。

你需要更好地注意你的編譯器給你的錯誤信息,特別是行號。然後在該點或其附近檢查文件(並向我們展示您是否無法弄清楚)。

這就是那種錯誤消息我希望看到如果你不小心聲明瞭n1n2變量char *而非char。在這種情況下gcc給我類似的東西到你的狀態是什麼:

qq.cpp: In function 'int main()': 
qq.cpp:9: error: invalid conversion from 'int' to 'char*' 
qq.cpp:10: error: invalid conversion from 'int' to 'char*'