关于fwrite的问题
#include <stdio.h>
#include "process.h"
void main()
{FILE *fp;
int i=10;
float f=12.23;
char ch[5]="name";
if(!(fp=fopen("test","wb")))
{printf("cannot open.\n");
exit(1);
}
fwrite(&i,sizeof(int),1,fp);
//fwrite(&f,sizeof(float),1,fp);
//fwrite(&ch,sizeof(ch),1,fp);
fclose(fp);
}
以上代码是一本书上的,可我用VC编译执行后,在所生成的文件中数字为什么是乱码?把test改为test.txt也没用。总之用fwrite输出数字时总是不是自己所想的结果。
[377 byte] By [
msdn] at [2007-8-14 20:05:17]

# 1 Re: 关于fwrite的问题
试一下下面的代码
#include <stdio.h>
#include "process.h"
main()
{
FILE *fp;
char ch[5]="name";
if(!(fp=fopen("test.txt","wb")))
{
printf("cannot open.\n");
exit(1);
}
fwrite(ch,sizeof(char),5,fp);
fclose(fp);
}
5420 at 2005-6-19 19:44:20 >

# 2 Re: 关于fwrite的问题
#include <stdio.h>
#include "process.h"
main()
{
FILE *fp;
int i[5]={'1','2','3','4','5'};
char ch[5]="name";
if(!(fp=fopen("test.txt","wb")))
{
printf("cannot open.\n");
exit(1);
}
fwrite(i,sizeof(int),5,fp);
fclose(fp);
}
5420 at 2005-6-19 19:49:53 >

# 5 Re: 关于fwrite的问题
fwrite(&i,sizeof(int),1,fp);
在写文件时,用的整形数的内码非ASCII码,当然是乱码了
keiy at 2005-6-19 19:57:40 >

# 6 Re: 关于fwrite的问题
#include <stdio.h>
#include "process.h"
main()
{
FILE *fp;
int i = 10;
if(!(fp=fopen("test.txt","wb")))
{
printf("cannot open.\n");
exit(1);
}
fwrite(&i,sizeof(int),1,fp);
fclose(fp);
}
其实数字已经写到文件中去了,只是ASC码值为那个数字的是个你说的乱码,你可以试一下别的数
最好拿一张ASC码表对着试
5420 at 2005-6-19 19:58:05 >
