文件读写错误!
程序代码:/*
有两个磁盘文件“A”和“B”,各存放一行字母,今要求把这两个文件中的信息
合并(按字母顺序排列),输出到一个新文件“C”中去。
*/
/*
思路:
1、建立两个可读写文件file1、file2,将str1、str2字符串分别读入到file1,file2;
2、将file1,file2中的字符串写入到str3,在str3中对字符串进行排序;
3、将str3字符串按字符依次写入到file3并输出。
*/
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
void main()
{
FILE *fp1,*fp2,*fp3;
char str1[20],str2[20],str3[40],temp;
unsigned int i,j;
if((fp1=fopen("file1.txt","w"))==NULL)
{
printf("Can not find the file!\n");
getchar();
exit(0);
}
if((fp2=fopen("file2.txt","w"))==NULL)
{
printf("Can not find the file!\n");
getchar();
exit(0);
}
if((fp3=fopen("file3.txt","w"))==NULL)
{
printf("Can not find the file!\n");
getchar();
exit(0);
}
fclose(fp1);
fclose(fp2);
printf("input string1:");
gets(str1);
printf("input string2:");
gets(str2);
fputs(str1,fp1); //将str1字符串写入到fp1;
fputs(str2,fp2); //将str2字符串写入到fp2;
//以上测试正常,fp1,fp2已被写入数据
fp1=fopen("D:\\VC\\第十章-文件\\file1.txt","r");
fp2=fopen("D:\\VC\\第十章-文件\\file2.txt","r");
fgets(str3,strlen(str1),fp1);//将fp1的字符串读入到str3;
fgets(str3,strlen(str2),fp2);//将fp2的字符串读入到str3;
/*以下测试str3是否读取到数据*/
puts(str3);
getchar();
/*测试错误:烫烫烫+str2字符串,str3未成功读取数据。对"fp1/fp2"进行rewind也没用*/
/*对str3字符串排序*/
for(i=0;i<strlen(str1)+strlen(str2);i++)
for(j=i+1;j<strlen(str1)+strlen(str2);j++)
if(str3[i]>str3[j])
{
temp=str3[i];
str3[i]=str3[j];
str3[j]=temp;
}
/*将str3字符串写入到fp3*/
for(i=0;i<strlen(str1)+strlen(str2);i++)
{
fputc(str3[i],fp3);
putchar(str3[i]);
}
}
//目前主要问题是str3未读取到数据。
[ 本帖最后由 a4811 于 2013-1-8 16:22 编辑 ]










