/n是換行,英文是linefeed,ASCII碼是0xA。
/r是回車,英文是carriage return ,ASCII碼是0xD。
如果用過機械打字機,就知道回車和換行的區別了。。。
換行就是把滾筒卷一格,不改變水平位置。
回車就是把水平位置復位,不卷動滾筒。
但是我們平時按得Enter到底是回車還是換行,不太清楚??
看到一種說法:windows下enter是 /n/r,unix下是/n,mac下是/r
在MS的系統中純文本格式按一個回車鍵是輸入了兩個字符,一個回車一個換行。在LINUX系統中則只是一個回車。
//以上內容參考了http://topic.csdn.net/t/20040617/23/3101951.html#和http://topic.csdn.net/t/20021113/09/1171659.html的討論
還有在編程時文件操作
wb(二進制方式)或者wt(文本方式)也會有影響。我做了個實驗(實驗用.net2003)
在01.txt文件中輸入12然后enter,在ultraedit中看到的二進制是31 32 0d 0a
然后程序如下:
復制代碼 代碼如下:
int mian()
{ FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6;
char a[10];
char b[10];
fp1 = fopen("01.txt","r");
fp3 = fopen("02.txt","w");
fread(a,sizeof(unsigned char),8,fp1); //a里是31 32 0a
fwrite(a,sizeof(unsigned char),8,fp3); //02.txt里是31 32 0d 0a ,原因是輸入的情況下,換行回車轉換成換行,然后輸出時換行又會轉成換行回車
fclose(fp1);
fclose(fp3);
fp2 = fopen("01.txt","rb");
fp4 = fopen("03.txt","wb");
fread(b,sizeof(unsigned char),8,fp2); //b里是31 32 0d 0a
fwrite(b,sizeof(unsigned char),8,fp4); //03.txt里是31 32 0d 0a ,原因是二進制情況下回車和換行的(類似文本方式的那種轉換)是不存在的
fclose(fp2);
fclose(fp4);
return 0;
}
好像結論是這樣的:讀的方式下,在文本方式下,enter是0x0a;在二進制方式下,enter是0x0d,0x0a。
MSDN中查到這樣的話:Also, in text mode, carriage return
主站蜘蛛池模板:
祥云县|
白沙|
宽城|
将乐县|
柳江县|
峨眉山市|
当雄县|
浦北县|
东乡族自治县|
石台县|
株洲市|
梁山县|
潮州市|
和平县|
襄城县|
安国市|
中江县|
馆陶县|
绥德县|
衡阳县|
昂仁县|
郴州市|
手机|
岢岚县|
隆安县|
湖口县|
祁门县|
兰考县|
黎平县|
贵南县|
瑞丽市|
道孚县|
成都市|
南丹县|
嘉定区|
中山市|
德江县|
吉木乃县|
汝州市|
新蔡县|
灵宝市|