我们有一个包含字符流的字符缓冲区.我们一次阅读每个角色并进行检查isprint.虽然某些点的读取isprint对于不可打印的字符返回true.我们打印了该字符的十进制值-92- 但是isprint在Solaris上为此返回TRUE.
for (int lix = 0; lix < l_len; ++lix) {
int lch = l_buf[lix];
if (isprint(lch) && !isspace(lch)) {
fputc(lch, l_fp);
}
else {
fprintf(l_fp, "\\%03o", lch);
}
}
Run Code Online (Sandbox Code Playgroud)
l_buf是类型const char*并包含字符流.isprint对于falseAIX和trueSolaris 上的缓冲区中特定索引上的字符.如果函数的参数isprint()(类型int不能表示为unsigned char等于或等于EOF),则行为未定义.
7.4字符处理
- 标头声明了几个用于分类和映射字符的函数.在所有情况下的参数是一个int,其值应是可表示为unsigned char或应等于宏EOF的值.如果参数具有任何其他值,则行为未定义.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |