fputc如何影响文件大小

how fputc affect file size?

本文关键字:影响 文件大小 何影响 fputc      更新时间:2023-10-16

我使用fputc(在C/c++中)将一些数据输出到文件中,文件大小对我的项目很重要。但是结果文件的大小似乎不正确,一个简单的代码示例:

FILE *fp = fopen( "123.txt", "w" );
for( int i=0; i<64; i++ )
    fputc( i, fp );
fclose( fp );

执行此代码后,文件大小为65B,而不是64B,但如果我使用fputc(1,fp),文件大小为64B。有什么诀窍吗?或者我可以做些什么来控制输出文件的大小?

我猜你是在Windows上做这个。

由于您以翻译(文本)模式打开文件,因此新行被转换为回车/换行对。字符代码10恰好被视为一个新行,因此与您所写的内容相比,最终会多出一个字节。

如果您以二进制模式打开文件,则不会发生这种情况。

FILE *fp = fopen( "123.txt", "wb" );

注意b添加到开放模式字符串