c - 我怎么知道换行符在我的环境中以何种方式表示?

标签 c linux

我想知道在我的环境中换行符用哪些 ASCII 字符表示, 我怎样才能检查它? 当我通过 getchar 或 scanf 读取它并检查读取的 ASCII 码时,我得到 10。 如何检查换行符在环境本身中表示的顺序?

最佳答案

那些“文本感知”I/O 函数将对此进行抽象并进行转换,以便 '\n' 起作用。

一种方法是创建一个包含单行(空)文本的文本文件,然后以二进制模式重新打开它并检查内容。二进制模式当然会关闭任何此类翻译,并公开原始字节。

不确定如何在不触及文件系统的情况下做到这一点,但我确信这是可行的。大多数时候这种事情是静态的,对于特定的目标平台它总是相同的,所以当然可以在编译时添加知识。

关于c - 我怎么知道换行符在我的环境中以何种方式表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47223651/

相关文章:

linux - 在 spawing ssh 之后或之前指定 match_max 有什么区别?

linux - 如何修复 Linux bash 的 'find' 命令中包含空格的路径

c - 将 alignas() 应用于 C 中的整个结构

c - 这个程序的输出是什么?为什么?

linux - 如何在 linux 中减小 mp3 的大小?

linux - 十六进制转义为文本(UTF-8)、bash 脚本

regex - 如何用sed替换包含特殊字符(&)的字符串或url?

c - 努力构建可移植代码以使用 C 在任何操作系统中生成文件

c - 冗余 IRQ 清除挂起操作

c - 静态变量和本地