有时我需要定义代表非字母数字char
的{{1}}。
在C ++中定义其值的正确方法是什么?
使用char
或EOF
是一个不错的选择吗?
答案 0 :(得分:1)
你在单词char
上读得太多了。
在一天结束时,它只是一个尺寸。在这种情况下,8位。短裤是16(你可以在海滩上穿它们),整数可以是32或其他东西,多头可以是64(或整数,或与海滩上的有关当局快速交谈,为什么你失去了两双短裤)。
在C ++中定义值的正确方法基本上取决于可以保存的最大值。 char_traits::eof()
确实是一个很好的常数,但脱离背景 - 意味着很少。
答案 1 :(得分:1)
EOF
不是char
值;它是一个int
值,由某些函数返回,表示无法获得有效的字符数据。如果您要查找要存储在char
对象中的值,EOF
绝对不是一个好选择。
如果您唯一的要求是将某些非字母数字值存储在char
对象中(并且您没有将其设置为char),则只需选择一些内容即可。任何标点字符都可以。
char example = '*';
char another_example = '?';
char yet_another_example = '\b'; // backspace
这假设我正确理解你的问题。如上所述:
有时我需要定义代表非字母数字
char
的{{1}}。
你的意思并不清楚。 “代表”到底是什么意思?如果您正在寻找一些任意的非字母数字字符,请参见上文。如果你正在寻找一些只是表示的任意值,你应该在某个特定的地方有一个非字母数字字符,你可以选择你喜欢的任何东西,只要你一直使用它。
例如,char
可能是表示两个十进制数字的模板,后跟一个连字符,后跟两个更多的十进制数字 - 但前提是您建立并遵循一个说明它意味着什么的约定。
请更新您的问题,以明确您的要求。