C++ 如何创建';字符常数
我正在编写一个程序,需要检查输入的任何内容,包括“字符”,这正是我遇到的问题:C++ 如何创建';字符常数,c++,compiler-errors,char,switch-statement,special-characters,C++,Compiler Errors,Char,Switch Statement,Special Characters,我正在编写一个程序,需要检查输入的任何内容,包括“字符”,这正是我遇到的问题: case ''': //some code break; 给了我这些错误: 错误C2137:空字符常量 错误C2001:换行符处于常量中 有没有一种方法可以将其格式化,使我能够编写该案例? 我唯一的另一个想法是将其设为默认大小写,这完全不是我想要的。特殊字符需要转义,以便在这种意义上使用,如下所示: case '\'': 您可以使用'\','\x27'甚至*“。您还可以将值为0x27的int强制转换
case ''':
//some code
break;
给了我这些错误:
错误C2137:空字符常量
错误C2001:换行符处于常量中
有没有一种方法可以将其格式化,使我能够编写该案例?我唯一的另一个想法是将其设为默认大小写,这完全不是我想要的。特殊字符需要转义,以便在这种意义上使用,如下所示:
case '\'':
您可以使用'\'
,'\x27'
甚至*“
。您还可以将值为0x27
的int
强制转换为char
,但这会变得更不可读,就像'\x27'
已经做的那样
C++允许在switch和constexpr语句中使用
*“”
,但C的惰性编译器可能会在其上应用运行时指针算术。您必须在每个C(C++)中使用\''
第三页handbook@JacekCz-仅仅因为答案很简单,并不意味着这是一个不值得的问题硬编码幻数从来都不是一个好主意。C++语言定义不要求单引号由值0x27表示。C++标准(2014)要求<代码> CASE *“”:< /Cord>。我不认为旧的和C编译器支持它。@ AsChuple,而我们在这里,<代码> int [*’'],<代码>除非您有意编写模糊代码,否则没有充分的理由使用除'\''
以外的任何东西。