在c ++中定义非字母数字字符的正确方法是什么?

时间:2014-04-25 22:10:50

标签: c++

有时我需要定义代表非字母数字char的{​​{1}}。

在C ++中定义其值的正确方法是什么?

使用charEOF是一个不错的选择吗?

2 个答案:

答案 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可能是表示两个十进制数字的模板,后跟一个连字符,后跟两个更多的十进制数字 - 但前提是您建立并遵循一个说明它意味着什么的约定。

请更新您的问题,以明确您的要求。