尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【第7章 I/O编程与异常】\r\n 和 \n\r是一回事吗?

【第7章 I/O编程与异常】\r\n 和 \n\r是一回事吗?
📅 发布时间:2026/6/19 5:59:08

\r\n 和 \n\r 不是一回事,它们是两种完全不同的字节序列,在语义和实际效果上也完全不同。

一、含义对比

序列 字节(十六进制) 含义


\r\n 0x0D 0x0A 回车(Carriage Return) + 换行(Line Feed)
✅ Windows 标准换行符
\n\r 0x0A 0x0D 换行 + 回车
❌ 不是任何主流操作系统的标准换行符

二、行为差异(以终端/编辑器为例)

  1. \r\n(标准 Windows 换行)
    光标先回到行首(\r),再下移一行(\n)。
    结果:正常换行到下一行开头。
    所有 Windows 程序(记事本、CMD、PowerShell 等)都正确识别。
  2. \n\r(非标准顺序)
    先下移一行(\n),光标停在新行的相同列位置;
    再执行 \r,光标回到该行开头。
    视觉效果看似“换行了”,但:
    在某些终端中可能显示异常(如多出空行或光标错位);
    文本编辑器通常不会将其识别为一个换行符,而是当作两个独立控制字符;
    在按行解析文件时(如 fgets、Python 的 readline()),不会在此处分割行!

三、实际影响示例

假设文件内容为(用转义序列表示):
text
Hello\n\rWorld
Python 读取(默认 newline=None):
python
with open('test.txt', 'r') as f:
lines = f.readlines()
结果:lines = ['Hello\n', '\rWorld\n'] (取决于具体实现,但通常不会在 \n\r 处断行)

实际上,Python 的通用换行模式只识别 \n、\r\n、\r 作为行分隔符,不识别 \n\r。
C 语言 fgets():
只会在遇到 \n 时停止(因为它是 Unix 风格换行);
\r 被视为普通字符,保留在缓冲区中。
Git / diff 工具:
会将 \n\r 视为“内容中的特殊字符”,而非换行,可能导致混乱的 diff 输出。

四、结论
✅ \r\n 是合法且标准的 Windows 换行符。
❌ \n\r 是非标准、无实际用途的错误组合,应避免使用。
💡 记忆技巧:
“先回车,再换行” —— 就像老式打字机:先把打印头归位(\r),再滚纸一行(\n)。
所以正确顺序是 \r\n,而不是反过来。

如果你在代码或数据中看到 \n\r,很可能是程序逻辑错误或字符串拼接失误导致的,建议检查并修正为标准格式(\n 或 \r\n)。

相关新闻

  • 2025-11-21
  • Gephi如何支持MySQL数据的复杂查询
  • Fisrt Blog

最新新闻

  • 如何通过Qwerty Learner提升英语打字速度:终极肌肉记忆训练指南
  • 上海奢侈品回收实测:江诗丹顿、欧米茄海马当场估价秒结全款 - 逸程
  • 魔都黄金回收暗访实录:24小时上门实测闵行、浦东、松江、静安、普陀五家临街老店,谁才是最良心之选? - 昌福黄金回收
  • 思源宋体终极指南:7种字重免费开源字体解决你的中文排版难题
  • 深入解析S12 MSCAN模块:硬件保护、时钟配置与低功耗设计实战
  • 大模型转型攻略:小白程序员轻松入门,收藏这份从零到精通的学习指南!

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号