求助求助!有个程序,在运行到一半时出问题了.麻烦帮我看看

xtfusljj 2008-04-05 03:44:09
程序题目:在两个文件中输入两个集合的元素,再在另一个文件中输出它们的子集.我这个程序空集的时候是好的,一旦输入元素就不错误了.#include <stdio.h>
void main()
{
char ch;
FILE *fpa, *fpb, *fpc;
int n, k, count;
int i = 0, j = 0;
int a[1000];

printf("在磁盘中新建两个TXT文件,分别取名为a.txt,b.txt\n");
printf("分别在两个文件中输入两个集合的元素,输入完毕后以输入s表示开始执行求交集.\n");
printf( "若要在文件中输入空集则输入一个空格");

if((ch = getchar()) == 's')
{
fpa = fopen( "a.txt", "r");
fpb = fopen( "b.txt", "r");
if(((ch = fgetc(fpa)) == ' ') ¦ ¦((ch = fgetc(fpb)) == ' '))
{
fpc = fopen( "c.txt", "w");
printf("它们的交集已经在另外一个新建文件里了.");
fclose(fpb);
fclose(fpa);
}
if(((ch = fgetc(fpa)) != ' ') ¦ ¦((ch = fgetc(fpb)) != ' ')){
fclose(fpb);
fclose(fpa);
fpa = fopen( "a.txt", "r");
while( !feof(fpa))
{
fscanf(fpa, "%d", &n);
while( !feof(fpb))
{
fpb = fopen("b.txt", "r");
fscanf(fpb, "%d", &k);
if( n == k)
{
a[i] = n;
i ++ ;
}
count = i;
}
fclose(fpb);
}
fclose(fpa);
for( i = 0; i <= count; i ++ )
{
for( j = i + 1; j <= count; j ++ )
{
if(a[i] == a[j])
{
for(; j <= count; j ++)
{
a[j] = a[j+1];
count -- ;
}
}
}
}
fpc = fopen( "c.txt", "w");
for( i = 0; i <= count; i ++ )
{
fprintf(fpc, "%d\n", a[i]);
}
}
}
}
...全文
74 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛勇 2008-04-05
  • 打赏
  • 举报
回复
fpc没有关闭,同意楼上的。
world007 2008-04-05
  • 打赏
  • 举报
回复
楼上说的没错,关闭了就不能再使用那个文件指针了,除非再打开文件
Supper_Jerry 2008-04-05
  • 打赏
  • 举报
回复
fpc没有关闭。
if(((ch = fgetc(fpa)) == ' ') ||((ch = fgetc(fpb)) == ' '))
{
fpc = fopen( "c.txt", "w");
printf("ËüÃǵĽ»¼¯ÒѾ­ÔÚÁíÍâÒ»¸öн¨ÎļþÀïÁË.");
fclose(fpb);
fclose(fpa);
}
执行完上面的。fpb,fpa都关闭了。怎么可以再if(((ch = fgetc(fpa)) != ' ') ||((ch = fgetc(fpb)) != ' '))

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧