以文本模式读取文本文件的缺点。 交叉平台用法
fgets()
系统中读取 - visaversa.
"\n"
文件在
"\r\n"
系统中读取。
"\n"
文件在"\n"
系统中读取。
"\n"
"\r\n"
系统中读取。
"\r\n"
文件在"\n"
"\r\n"
"\r\n"
文件
,然后用常见代码删除潜在的终端:
"\n"
thyet足够了吗?"\r\n"
fgets()
buf[strcspn(buf, "\n\r")] = '\0';
。
最后一个字节可能是一个ctrl
z,它并不是文本的一部分。线可能是'\r'
,
fgets()
,
'\n'
,或其他人的混合物,因为混合的历史记录编辑者假设了一定的结局。
最后一行可能/无法以适当的线结束字符结束。narrow vs.宽字符。
形:通过在文本模式下打开,我们依靠当前系统来处理当前文本文件格式,而不仅仅是我们在编写代码时所知道的。
bottomline
BE处理many文本文件标准。 (IMO:这意味着将文件的至少部分读取为二进制文件,分析它是哪种类型的文本文件,然后在文本模式下以手工制作的文本手触及或重新打开文本模式。)
/
'\r'
/"\n"
标志到"\r\n"
几乎是关于newline转换的。 "\r"
binary
将将程序正在运行的操作系统转换为简单的单个字节Newlines。 GLSL编译器根本不在乎它看到的是哪种newline(Unix样式
text
fopen
),这一切都是空间的,无论如何。
也无需用拆分线呈现OpenGL。binary
如果您要以行处理为行,则应以文本模式打开文件。文本模式会自动将操作系统的线路断裂字符转换为
text
\n
序列将被翻译为\n
,并且
\r\n
\n\r
,因此不需要翻译,二进制模式和文本模式之间没有区别。
Get告诉no tome to 清除为什么不 adapt
Learn
或只是复制文件?如果是这样,没有问题。打开并复制。在过去,我们对文本文件有了这件事;您可以在打开它们时得到平台的行为,并且在系统之间复制文件时,您必须转换行结尾。
日子正在过去;每个人都在文本模式下放弃
glShaderSource
,只是使用简单的状态机接受任何线路结尾。