今天编程学习网为大家讲解c语言换行符怎么输入,有需要的小伙伴可以参考一下:
C中的换行符是什么? 我知道不同的操作系统具有不同的行尾字符,但是它们被转换为C换行符。 那是什么角色?
。在读取或写入文本模式文件或stdin / stdout等时,必须使用,C会为您处理翻译。当您处理二进制文件时,根据定义,您是一个人。
为什么要下票?这是到目前为止唯一正确的答案。
我怀疑是恶作剧,这是我的另一个较老的无关答案,在此之后就被否决了。这就是生活。
" C会为您处理翻译":这是一个令人误解的陈述。文字字符串中的字符转义由编译器处理(通常是格式字符串)。不处理输入和输出流中的字符转义符(由scanf,gets,cin ...读取或由printf,puts,cout ...写入)。 < n>保留两个字符<>和,Ascii代码10被视为换行符。
@YvesDaoust:很明显,这个问题(和答案)与转义无关。问题中的"翻译"不是从两个字符的转义序列到到10,而是从单个到CRLF,CR或LF等文本文件中行尾的本地约定为。所以不,这不是一个令人误解的陈述,并且流确实在需要时在这里进行翻译。
不,scanf不会在内部表示形式中将您的输入转换为换行符,并且当字符串包含转义符时printf不会显示,它将执行换行符。
@YvesDaoust:就是重点。您将"
"放在格式字符串中,并且printf()和朋友打印它时,实际上会得到换行符,无论系统上的"换行符"是CR还是CRLF或LF或其他,因为C会为您翻译。这是众所周知的常见行为,不应引起争议。您可以在C11第5.2.2.2-3节"文本文件中的外部表示形式不必与内部表示形式相同"中看到自己。
当我说输入或显示(有意使用)时,显然并不涉及格式字符串。
@YvesDaoust:那我不知道你在说什么。您开始讨论"字符转义符",这显然是表示非图形字符的一种方式,只出现在源代码中,而不出现在"输入"或"显示"中。这个问题是关于C换行符,以及它如何与文本流中的行尾外部表示进行转换,无论后者在给定的实现中如何。
换行可能被认为是一些char,它的值是'
'。 C11 5.2.1
这条C新行出现在3个地方:C源代码,作为单个char,以及在文本模式下作为文件I / O的行尾。
许多编译器会将源文本视为ASCII。在这种情况下,代码10,有时是13,有时是成对的13,10作为源代码的换行符。如果源代码位于另一个字符集中,则可以使用不同的代码。该换行符通常标记一行源代码的末尾(实际上,此处有点复杂),//注释和#指令。
在源代码中,两个字符\和n将char换行符表示为。如果使用ASCII,则此char的值为10。
在文件I / O中,以文本模式,在读取输入文件(和stdin)的字节时,具体取决于环境,当字节的值为10(Unix),13,10,(* 1)时(Windows),13(Old Mac ??)和其他变体转换为' n'。写入文件(或标准输出)后,将发生反向翻译。
注意:二进制模式下的文件I / O不进行转换。
源代码中的'
'是回车符char。
(* 1)孤行13和/或10也可以转换为。
如果用换行符表示换行符,它是 n,而 r是回车符,但是如果用换行符表示,行的结尾则取决于操作系统:DOS使用回车符和换行符(" r n")作为行尾,Unix仅使用换行符(" n")
' r'=回车符,' n'=换行符。
实际上,当您在不同的操作系统中使用它们时,会有一些不同的行为。在Unix上为' n',在Windows上为' r' n'。
以上就是“c语言换行符怎么输入”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/10521/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料