首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

文件输出有关问题

2012-02-21 
文件输出问题我想在output.txt中写一个整数123456789用了两种方法1、#includestdio.hintmain(){FILE*fpf

文件输出问题
我想在output.txt中写一个整数123456789

用了两种方法

1、


#include   <stdio.h>

int   main()
{
FILE*   fp;
fp   =   fopen( "output.txt ", "w ");

int   i   =   123456789;

fwrite(&i,4,1,fp);

fclose(fp);

return   0;
}

2、

#include   <stdio.h>

int   main()
{

freopen( "output.txt ", "w ",stdout);

int   i   =   123456789;

printf( "%d ",i);

fclose(stdout);

return   0;

}

第一种方法用记事本打开时是乱码,而第二种方法可以正确的达到目的,这是为什么呢?两种方法有什么区别呢?

[解决办法]
第一种方法你写进去的是123456789;
而而第二种方法写进去的是 "123456789 ".
[解决办法]
fwrite(&i,4,1,fp);
==》
fprintf(fp, "%d ", i);
[解决办法]
fwrite 需要使用 二进制方式操作文件,
你使用文本方式打开,
请使用 fprintf 函数 ~
[解决办法]
fwrite只输出二进制流,忠实的输出你给它的数据。在你的例子里,你给fwrite的是4个字节,fwrite就忠实地把这四个字节分别写到了文件、标准输出里。至于你看到的,只不过是终端、记事本的显示方式而已。如果愿意,你可以用16进制去看它们。
123456789(10)=75bcd15(16)所以你写的时候就是写了15,cd,5b,07(字节序),

热点排行
Bad Request.