初學C,今天看代碼看到這樣一段案例:
#include
void main(void)
{
printf("1abcdefghijklmn\n");
printf("2opqrstuvwxyz01|------\r");
printf("3mmmmmmmmmmmmmm\n");
}
然而這程序輸出的結果是:
1abcdefghijklmn
3mmmmmmmmmmmmmm|------
把第二句的 \r 換成 \n 後,結果是:
1abcdefghijklmn
2opqrstuvwxyz01|------
3mmmmmmmmmmmmmm
大俠們,請問這是為什麼???
\r,\n都是轉義字符。\n換行(LF) ,將當前位置移到下一行開頭,\r回車(CR) ,將當前位置移到本行開頭。如果都是\n程序會輸出三行。第二行代碼是\r是輸出完第二行內容後回到行首然後輸出第三行的時候就會覆蓋第二行的內容。當第三行的內容比第二行的內容多時就會完全覆蓋,否則會有第二行的剩余內容。