ASCII码中10和13的含义
今天在看代码的时候遇到了这样一行代码
if(top.size() == 1 && (static_cast<unsigned int>(top[0]) == 10 ||
static_cast<unsigned int>(top[0]) == 13))
{ continue; } //top的类型为string
首先中文的string一个字的size()为2 所以top.size() == 1表示这个字不是中文,那后面的10和13一定是ASCII了,经过查阅ASCII后恍然大悟。
10:为LF即 “\n"
13:为CR即 ”\r“
那为什么要两个都进行判断呢?
因为,在不同的操作系统中,换行符的表示方式是不一样的。在UNIX系统中,换行符使用"\n" , 在 windows 系统中换行使用 “\r\n”; 在旧版macOS中换行使用回车符"/r",在新版macOS中使用与unix系统相同的换行方式。
参考原文链接
https://my.oschina.net/u/2552286/blog/2990495
该博客探讨了ASCII码中的10(LF)和13(CR)在不同操作系统中作为换行符的使用。在UNIX系统中,换行由'
'表示,而在Windows中则是'
'的组合。旧版macOS使用回车符'
',而新版macOS与UNIX一致。这段代码判断字符串中的字符是否为换行符,考虑了各种系统的兼容性。
1028

被折叠的 条评论
为什么被折叠?



