fwrite函数问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 06:55:39
为什么我得到的不是1 2 3 4 5 6 7,而是:
程序:
#include <stdio.h>
void main()
{
FILE *fp;
int b[7] = { 1,2,3,4,5,6,7};
fp = fopen( "d:\\sy\\cc.txt" , "wb" ) ;
if( fp == NULL )
{
printf( "Error!\n" );
exit(0);
}
fwrite(b, sizeof( int ) , 7 , fp );
printf( "The number has inputed!\n" );
fclose( fp );
}
我想知道如何用fwrite()来连续写入整型数,而不用字符型。 改了,没用的,一样的结果。

把int b[7] = { 1,2,3,4,5,6,7};改成char型

char b[7] = { '1','2','3','4','5','6','7'};
...
fwrite(b, sizeof( char ) , 7 , fp );

你是说你用个啥东西打开那个 cc.txt之后惊讶低看到 ? 。。。

你怎么不指望看到“一二三四五六七”呢. 你要搞清楚数字和asc码的差别啊。

问题在这里吧fp = fopen( "d:\\sy\\cc.txt" , "wb" ) ;

wb表示是以二进制方式写入文件
改成fp = fopen( "d:\\sy\\cc.txt" , "w" ) ;试一试