C语言:将两个文件的内容合并生成一个新文件

我编了这个程序,编译通过了,但是运行的时候提示"Ox004010cb"指令引用的"Ox0000000c"内存。该内存不能为"read"。一般这种情况是事先没对指针赋值吗?... 我编了这个程序,编译通过了,但是运行的时候提示"Ox004010cb"指令引用的"Ox0000000c"内存。该内存不能为"read"。一般这种情况是事先没对指针赋值吗?但是我好像都赋了值的。
到底是什么原因呢?

#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch[100],*p=ch;
FILE *fa,*fb,*fc;
if((fa=fopen("A.txt","r"))=NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fb=fopen("B.txt","r"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fc=fopen("C.txt","w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
while(!feof(fa))
*p++=fgetc(fa);
while(!feof(fb))
*p++=fgetc(fb);
*p='\0';
fputs(ch,fc);
fclose(fa);
fclose(fb);
fclose(fc);
}
展开
 我来答
负家子弟
2007-04-11 · TA获得超过3567个赞
知道大有可为答主
回答量:1336
采纳率:0%
帮助的人:1584万
展开全部
if((fa=fopen("A.txt","r"))=NULL)
这里错了,把=NULL改成==NULL
if((fa=fopen("A.txt","r"))==NULL)
百度网友32cdd9945
2007-04-11 · TA获得超过1374个赞
知道大有可为答主
回答量:2429
采纳率:100%
帮助的人:2078万
展开全部
是不是文件内容太多了,吧字符串数组定义大一点看看。
char ch[100],*p=ch;
改为char ch[10000],*p=ch;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2007-04-11 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
if((fa=fopen("A.txt","r"))=NULL)
右边的是==,你写成了=
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式