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