写入以文本模式打开但在二进制模式下没有发生的文件时会发生什么转换?特别是在 MS Visual C 中.
What translation occurs when writing to a file that was opened in text mode that does not occur in binary mode? Specifically in MS Visual C.
unsigned char buffer[256];
for (int i = 0; i < 256; i++) buffer[i]=i;
int size = 1;
int count = 256;
二进制模式:
FILE *fp_binary = fopen(filename, "wb");
fwrite(buffer, size, count, fp_binary);
与文本模式:
FILE *fp_text = fopen(filename, "wt");
fwrite(buffer, size, count, fp_text);
我相信大多数平台在处理流时都会忽略t"选项或text-mode"选项.然而,在 Windows 上,情况并非如此.如果您查看以下 fopen() 函数的说明:MSDN,你会看到指定"t"选项会有如下效果:
I believe that most platforms will ignore the "t" option or the "text-mode" option when dealing with streams. On windows, however, this is not the case. If you take a look at the description of the fopen() function at: MSDN, you will see that specifying the "t" option will have the following effect:
这篇关于以二进制和文本模式编写的文件的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!