大家都知道,在Windows下,一个纯文本文档表示换行用\r\n,而在Unix下用\n。
'\r'表示回车,'\n'表示换行,很多人可能不太清楚它们的区别,我们可以在控制台下做个试验。
当程序中输出\r时
#include <stdio.h>
int main()
{
int i = 0;
while (++i < 100000)
printf("%d\r", i);
return 0;
}
执行这个程序你会看到控制台里面第一行出现一个数字,它在第一行不停地变化,但程序输出没有换行。
这说明\r的效果只是“回车”——即光标回到一行的开头继续输出,原先这一行的内容会被覆盖掉。
当程序中输出\n时
#include <stdio.h>
int main()
{
int i = 0;
while (++i < 100000)
printf("%d\n", i);
return 0;
}
执行这个程序你会看到程序输出了很多行,每行一个数字。
这说明\n的效果就是一般的换行效果。
当你理解上面这些效果之后,你就知道为什么再改成\r\n后效果和\n一样了。