【零碎小bug系列】windows下的回車和換行符,cmd(telnet)上輸出不左對齊

cmd(telnet)上輸出不左對齊,而是有莫名其妙的空格

背景

在cmd上使用telnet連接本地端口的服務器時,以此作爲一個應答echo的客戶端,卻發現輸入的時候簽名總有莫名其妙的空格
echo
如下

解決

是輸出時的’\n’的問題,win下的回車應該爲"\r\n",單單一個’\n’就會出現上述問題。
在這裏插入圖片描述
在這裏插入圖片描述
ok問題得到解決

細究

在Windows中:
‘\r’ 回車,回到當前行的行首,而不會換到下一行,如果接着輸出的話,本行以前的內容會被逐一覆蓋;
‘\n’ 換行,換到當前位置的下一行,而不會回到行首;
故Windows系統裏面,每行結尾是“<回車><換行>”,即 “\r\n”
而Unix系統裏,每行結尾只有“<換行>”,即 “\n”
Mac系統裏,每行結尾是“<回車>”,即 “\r” ;。
一個直接後果是,Unix/Mac系統下的文件在Windows裏打開的話,所有文字會變成一行;而Windows裏的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。

具體原因和歷史可參考: linux和windows下的“回車符”和“換行符”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章