程序是这样的
#include<stdio.h>
main()
{
char *m[1000];
FILE *fp,*fp1;
fp=fopen("test.dat", "r"); /*打开文字文件只读*/
fp1=fopen("test1.dat", "w+");
fread(m,sizeof(char),70,fp);
fwrite(m,sizeof(char),70,fp1);
fclose(fp);
fclose(fp1);
}
文件夹下先建一个test.dat,内容为
Your score of TOEFL is:617
That's good news
运行完,生产新文件test1.dat,内容为
Your score of TOEFL is:617
That's good news
烫烫烫烫烫烫烫烫烫烫烫烫
就是会出现乱码。文件有43个字符,把原程序的70改成43,44,45,都没问题,可是数字一大就有乱码,这是为什么?
这是一个数据从一个文件读到另一个文件的问题,我想做的就是不断读入数据进行计算,而前面生成的文件是计算得来得,不可能先知道文件长度得,那我应该怎么办?
还有:既然fread(),fwrite(),可以完成文件得任何数据得读/写操作,那么都用这两个就好了,为什么还要用fgetc(),fputc()这些命令呢?
可能我的问题太简单了,可是你能帮帮我指点一下真的可以给我很大帮助,现在我是迷迷糊糊的。谢谢了~
----------------解决方案--------------------------------------------------------
字符数组的长度不确定的 指定位置的空间没有初始化就会有乱码
如果读入一个块像结构体那样用fread()和fwrite() 比较方便
这个题用 getc() 和putc()就可以了
----------------解决方案--------------------------------------------------------
哦。知道了,谢谢斑竹
----------------解决方案--------------------------------------------------------
fread和fwrite是按照你设定的长度对文件进行读写, 解决这个问题的最简单方法是先对数组进行初始化,用memset,
----------------解决方案--------------------------------------------------------
为什么我把楼主的代码copy下来在turboc2中运行都出不来结果呀,出来的是Null pointer assignment;希望哪位高手帮忙解答一下。谢谢!
[此贴子已经被作者于2006-10-20 11:11:54编辑过]
----------------解决方案--------------------------------------------------------
文件夹下先建一个test.dat,内容为
Your score of TOEFL is:617
That's good news
----------------解决方案--------------------------------------------------------