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

isspace() only works for digits up to 8?

在我的代码中:

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

给出 0 和 8。为什么 isspace(10) 不给出 0,因为 10 不是白色 space?

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

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

当您传递 510 时,您是在询问其 ASCII 值为 5(ENQ,一些很少使用的控制代码)和 10(LF,换行符,AKA '\n') 是空格。 ENQ 不是空格,所以 isspace returns 为零。换行符是空格,因此 isspace returns 是一个非零值。

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

您传递的数字被视为 ASCII 字符的数字表示形式。 10 是一个换行符,被系统认为是一个白色 space 字符。