首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

Windows 與 Linux 換行符差異(\\r\\n vs \\n)完整解析

     編輯:關於C

字元碼對照

符號ASCII 碼名稱作用
\n0x0A (10)Line Feed (LF)換行
\r0x0D (13)Carriage Return (CR)回車(游標移至行首)

作業系統行尾約定

  • Windows / DOS:\r\n (CRLF) —— 先回車再換行。
  • Linux / Unix / macOS (現代):\n (LF) —— 單一字元同時表示回車+換行。
  • 經典 Mac OS (9 及之前):\r (CR) —— 僅回車。

程式設計實務

  • C/C++ 程式中只寫 \n 即可:標準庫在文字模式下自動轉換(Windows 讀寫時雙向轉換 CRLF↔LF)。
  • 二進位模式("rb"/"wb")不做轉換,讀寫原始位元組。
  • 跨平台傳輸檔案時,建議統一轉為 LF(Git 預設 core.autocrlf 處理)。

經典陷阱範例

#include <stdio.h>
int main() {
    char a[10] = "abc\r";
    printf(a);  // 無輸出!
    return 0;
}

原因:\r 將游標移回行首,後續輸出覆蓋 "abc",終端機顯示為空行。若在字串末尾加 \n 或 \r\n 即可正常顯示。

檢查與轉換工具

  • file / cat -A / od -c:查看行尾字元。
  • dos2unix / unix2dos:批次轉換。
  • 編輯器(VS Code、Notepad++、Vim)底部狀態列可切換 EOL 格式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved