分类: C/C++
2008-04-26 18:51:45
http://www.cppblog.com/zytoftuncun/archive/2007/04/21/22463.aspx
从来没想过这些细节问题,但看了Zweily的第一篇小品文,发现原来还有这样的差别,于是以现有知识写了个程序,不管他的什么mfc。
#include
using namespace std;
int main(){
cout<<"weicong";
cout<<'\n';
cout<<"weicong";
cout<<'\r';
cout<<"weicong";
cout<<'\n';
cout<<"weicong";
cout<<'\r';
cout<<"weicong";
system("dir>out.txt");
return 0;
}
结果输出三行weicong
怎么回事呢?原来回车符只是把光标移到当前行的最前面,
所以前两个就等于只有一个,
三四个也等于一个
。
这样的话'\r'后的weicong覆盖了前面的weicong。就输出了三个。
下面我们来验证一下:
1#include
2using namespace std;
3
4int main(){
5 cout<<"weicong";
6 cout<<'\n';
7 cout<<"weicong";
8 cout<<'\r';
9 cout<<"cong";
10 cout<<'\n';
11 cout<<"weicong";
12 cout<<'\r';
13 cout<<"weicong";
14 system("dir > out.txt");
15 system("pause");
16 return 0;
17 }
第二行显示congong,覆盖的猜测是正确的。
额外知识:
Chr(13)回车符
Chr(10)换行符
(感觉vb里用到过)
’\n’是换行符,’\r’是回车符。它们相对应的ASCII码分别是:0x0A和0x0D。