c++中'\n'和'\r'有什么区别吗?
可以的话举个例子看看
一个是回车换行、一个是回车符
简单的来说,回车换行就是到下一行首列,回车就是回到本行首列
一个是回车,一个是换行,当然有区别,ascii码值也不一样
和C++没有任何关系,\n表示ascii 13,\r表示ascii 9。两个不同的字符。
至于它们的含义,要看不同的程序和操作系统的解释。这个我上次已经解释的很清楚了。
一个是回车,一个是换行
一个是回车的,一个是换行的。
换行和回车,和VB里面写char(10) char(13) 是差不多的
对于Windows系统\n是回车换行,在汇编中是10、13。而\r是在回车
\n换行
\r回车
\r\n回车换行
在控制台,和文件的表现和操作系统有关
pint函数本身是控制打印机的,只是由于控制台 输出和打印输出,
有一定的相似性,所以才能在打印机和控制台上,使用相同的控制符号
对于打印机,不回车只换行的话,打印头只是移动到下一行同一位置
回车的话,则会跑到一行的开头
回车不换行,则会在同一行打印可能不同内容的文字
print 系列函数
一个是回车,一个是换行,一个是不可见字符,一个有可见效果,就这样
在asiic 转化成 unicode的时时候,可以使用这个函数
CString TranslateNtoRN(CString str)
{
int nLen = str.GetLength();
for (int i = 0; i < nLen; i ++)
{
if (0 < i && _T('\n') == str[i] && _T('\r') != str[i - 1])
{
str.Insert(i, _T('\r'));
i++;
nLen++;
}
}
return str;
}
CString CMFCApplication5Dlg::TranslateNtoRN(CString str)
{
int nLen = str.GetLength();
for (int i = 0; i < nLen; i ++)
{
if (_T('\n') == str[i])
{
if (0 == i)
{
str.Insert(i, _T('\r'));
i++;
nLen++;
}
else if (0 < i && _T('\r') != str[i - 1])
{
str.Insert(i, _T('\r'));
i++;
nLen++;
}
}
}
return str;
}