isspace()仅适用于最多8位的数字?

时间:2015-10-18 05:50:19

标签: c++ whitespace isspace

在我的代码中:

cout << "Isspace 5 and 10 are " << isspace(5) << " and " << isspace(10) << endl;

给出0和8.为什么isspace(10)不给0,因为10不是空格?

3 个答案:

答案 0 :(得分:2)

因为根据issspace(),10(0xa)是一个空白字符(换行符/换行符)。见http://www.cplusplus.com/reference/cctype/isspace/

答案 1 :(得分:1)

您应该将字符传递给isspace,而不是整数。

isspace('5') == zero (false)
isspace(' ') == non-zero (true)

当您通过510时,您会询问ASCII值为5(ENQ,一些很少使用控制代码)和10(LF,换行,AKA { {1}})是空白。 ENQ不是空格,因此'\n'返回零。换行符是空格,因此isspace返回非零值。

答案 2 :(得分:1)

您传递的数字被视为ASCII字符的数字表示。 10是换行符,系统认为是白色空格字符。