1
2
Windows控制台遵循与文件或实际物理终端相同的行尾约定。它需要同时看到CR和LF才能正确移动到下一行。
也就是说,在ANSIC程序和控制台之间有很多软件基础设施。特别是,任何标准的C库I/O函数都会尝试做正确的事情,前提是您允许这样做。这就是为什么
用
顺便说一下,传统上连接到*尼克斯盒的终端,包括Xterm模拟的DEC VT100,也需要CR和LF。然而,在*nix世界中,从换行字符到CRLF序列的转换是在tty设备驱动程序中处理的,因此大多数程序不需要知道它,并且
如果您的ansi c程序正在避免C库对控制台的I/O(可能是因为您需要访问控制台的字符颜色和其他属性),那么您是否需要发送CR将取决于您使用哪个win32 api调用来发送字符。 |
2
1
如果您处于*nix环境中,则(linefeed)可能正常。如果您在Windows中并且没有重定向(现在),那么linefeed也可以,但是如果某个人在某个点重定向,那么:-( 但是,如果您使用的是Windows,那么如果将输出重定向到文本文件,然后另一个进程尝试使用数据,则可能会出现问题。 控制台知道要显示什么,但消费者可能不高兴… 如果您使用的是C,您可以尝试使用environment.newline“constant”。 http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx 如果你真的是香草C,你会被困在\r\n.:-) |
3
0
这取决于你用它们做什么。如果不同时放置新行,某些程序将无法正确显示新行。
如果你只想写
还有一些文件格式和协议在不使用这两种格式和协议的情况下将完全无效。
|
4
0
我已经很久没试过了,我不确定我是否记得发生了什么…但换行符本身是否会在不返回到左列的情况下沿着行移动? 根据编译器的不同,标准输出可能以文本模式打开,在这种情况下,一个换行符将在写出之前转换为\r\n。 编辑: 我刚刚尝试了一个快速测试,在xp中,一个没有返回的文件正常显示。我仍然不知道是否有编译器为您插入返回。 |
5
0
在C语言中,文件(称为“流”)有两种形式——二进制或文本。 这一区别的含义取决于实现/平台,但在写入文本流时,Windows(具有我见过的常见实现)会自动转换为“r\n”,在读取文本流时,“r\n”会自动转换为“n”。 “控制台”实际上是“标准输出”,它是默认情况下作为文本流打开的流。所以,在实践中,在窗户上写着“你好,世界!\ n“应该足够——而且可以携带。 |
Community wiki · 需要改变的用户界面模式? 1 年前 |
LITzman · 使用状态处理颜色主题更改 1 年前 |
Community wiki · 进程。退出(0):输出消失? 1 年前 |
arsaces · 将文本添加到特定文件的末尾 2 年前 |
YGranja · 库<图形。h> MinGW-W64缺少 2 年前 |
Felipe Palermo · Ctrl键仍被按下,按键事件() 2 年前 |
HCJ · win cmd中的批处理脚本循环 2 年前 |