在我的代码中:
cout << "Isspace 5 and 10 are " << isspace(5) << " and " << isspace(10) << endl;
给出 0 和 8。为什么 isspace(10) 不给出 0,因为 10 不是空格?
在我的代码中:
cout << "Isspace 5 and 10 are " << isspace(5) << " and " << isspace(10) << endl;
给出 0 和 8。为什么 isspace(10) 不给出 0,因为 10 不是空格?
因为根据issspace(),10(0xa)是一个空白字符(换行符/换行符)。见http://www.cplusplus.com/reference/cctype/isspace/
您应该将字符传递给isspace
,而不是整数。
isspace('5') == zero (false)
isspace(' ') == non-zero (true)
当您通过5
并10
询问其 ASCII 值 5(ENQ,一些很少使用的控制代码)和 10(LF,换行,AKA '\n'
)的字符是否为空格时。ENQ 不是空格,因此isspace
返回零。换行符是空格,因此isspace
返回一个非零值。
您传递的数字被视为 ASCII 字符的数字表示。10 是换行符,系统将其视为空白字符。