在我的代码中:
cout << "Isspace 5 and 10 are " << isspace(5) << " and " << isspace(10) << endl;给出0和8。为什么isspace( 10 )不给0,因为10不是空白?
发布于 2015-10-18 05:53:48
你应该把字符传递给isspace,而不是整数。
isspace('5') == zero (false)
isspace(' ') == non-zero (true)当您传递5和10时,您会询问具有ASCII值5 (ENQ,一些很少使用的控制代码)和10 (LF、行提要、AKA '\n')的字符是否是空格。ENQ不是空白,所以isspace返回零。一个行提要是空白,所以isspace返回一个非零值。
发布于 2015-10-18 05:54:12
因为根据issspace(),10 (0xa)是一个空格字符(newline/linefeed)。请参阅http://www.cplusplus.com/reference/cctype/isspace/
发布于 2015-10-18 05:56:46
您传递的数字被视为ASCII字符的数字表示。10是一个换行符,被系统认为是一个空格字符。
https://stackoverflow.com/questions/33194769
复制相似问题