我有一個枚舉,我正在做一個cout
,如在:cout << myenum
。C++ cout和枚舉表示
當我調試時,我可以看到該值爲整數值,但當cout
吐出時,它顯示爲文本表示。
任何想法cout
在幕後做了什麼?我需要相同類型的功能,並且有那些將枚舉值轉換爲字符串的示例,但似乎我們需要知道這些值提前。就我而言,我不知道。我需要使用任何ol'枚舉並獲取其文本表示。在C#中它是一塊蛋糕; C++ ..不容易。
我可以採取整數值,如果我需要並適當地轉換它,但字符串會給我正是我需要的。
更新:
非常感謝大家對這個問題的貢獻。最終,我在一些隱藏的代碼中找到了我的答案。有一種方法將枚舉值轉換爲表示實際移動的字符串,例如「exd5」。在這種方法中,雖然他們正在做一些非常狂野的東西,但我現在暫時忘記了。我的主要目標是獲得字符串表示。
「當」cout「吐出來時,它顯示爲文本表示形式」 - 你確定嗎?如果是這樣,有些事情是錯誤的!請發佈演示代碼。 – 2011-05-29 17:44:04
@ Neil:錯? IOStreams如何將'int'本地轉換爲詞法表示「遠大錯誤」? [編輯:啊,你讀在枚舉的符號表示] – 2011-05-29 17:45:45