【问题标题】:How to print out strings from the enum class in C++? [duplicate]如何从 C++ 中的枚举类中打印出字符串? [复制]
【发布时间】:2014-05-31 19:01:42
【问题描述】:

我有一个 C++ Testing.hh 头文件,我在其中声明了这个 ENUM -

enum TestTypeOpt {TestingOne, TestingTwo};

现在在我的Testing.cc 类中,我试图从枚举中打印出TestingOneTestingTwo 字符串,如下所示

 cout << "From command" << Testing::TestingOne << endl;
 cout << "From command" << Testing::TestingTwo << endl;

但是上面 cout 以某种方式打印出01?我最近开始使用 C++,所以有点困惑。

我做错了什么吗?我只是想从枚举类中打印实际的字符串值。

【问题讨论】:

  • @arshan 阅读帖子,他说出了他想要做的事情。

标签: c++ enums


【解决方案1】:

如果有更好的方法,请有人纠正我,但我知道这样做的方法是使用宏。

只需输入#define str(x) #x 这会将 x 替换为代码中写入的名称。

然后使用例如: cout &lt;&lt; "From command" &lt;&lt; str(Testing::TestingOne) &lt;&lt; endl;

【讨论】:

  • 当然可以,但如果您使用变量,这将毫无意义。请参阅我对答案的编辑。
  • @Qix 他没有要求变量。他展示了一个明确的例子,并询问如何打印出名称。我觉得这正是他问题的答案。
  • 如果是这种情况,那么只需使用一个字符串。为什么要使用宏?
  • @Qix 他出于某种原因试图打印出enum 的名称。就是这样。如果将其更改为字符串,则不再与枚举/变量耦合。使用它对于标准输出调试非常有帮助,因为您可以立即打印出变量名称。您 假设 他想将枚举变量的实际值打印为字符串,但这不是他的问题。所以我没有得到-1 ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
相关资源
最近更新 更多