因为C语言和UNIX的开发者是同事……
C语言里统一用的\n表示另起一行。微软的DOS受到了当时8位系统主流OS CP/M的影响,使用\r\n表示另起一行。Mac用\r表示另起一行。
C标准库隐藏了平台的不一致性,所有标准输入输出(包括标准文件)操作时都会自动进行转换,保证语言内总是用\n。像getchar()、fscanf()、printf()等等都是这样的。
getch()并不是C标准库的函数,而是比较低级的控制台函数,所以不会进行转换。
你无法通过cin输入回车符(ASCII 13),因为C++标准库和C一样,通过键盘中断服务读取的\r\n会被自动转换为\n。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步