当前位置: 代码迷 >> C语言 >> [求助]数据输入输出的问题
  详细解决方案

[求助]数据输入输出的问题

热度:266   发布时间:2006-10-11 10:14:11.0
[求助]数据输入输出的问题

程序是这样的
#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()这些命令呢?

可能我的问题太简单了,可是你能帮帮我指点一下真的可以给我很大帮助,现在我是迷迷糊糊的。谢谢了~

搜索更多相关的解决方案: TOEFL  数据  char  输出  

----------------解决方案--------------------------------------------------------

字符数组的长度不确定的 指定位置的空间没有初始化就会有乱码
如果读入一个块像结构体那样用fread()和fwrite() 比较方便
这个题用 getc() 和putc()就可以了

程序代码:
while(!feof(fp)) fputc(fgetc(fp),fp1);


----------------解决方案--------------------------------------------------------
哦。知道了,谢谢斑竹
----------------解决方案--------------------------------------------------------
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


----------------解决方案--------------------------------------------------------
  相关解决方案