求助一道c语言的文件题。 5

题目是:有两个磁盘文件A和B,各存放一行字符。要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。求助:下面是我的代码。输出如图,为什么文件c前面有两个... 题目是:有两个磁盘文件A和B,各存放一行字符。要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
求助:下面是我的代码。输出如图,为什么文件c前面有两个空格,空格是A和B的结束符吗?该怎么改?

int main(void){ FILE *fpa, *fpb, *fpc; char str[1024], t; int i = 0, j = 0, k; if (!(fpa = fopen("D:\\A.txt", "r"))) { perror("出错原因:"); Sleep(3000); return 0; } if (!(fpb = fopen("D:\\B.txt", "r"))) { perror("出错原因:"); Sleep(3000); return 0; } rewind(fpa); while (!feof(fpa)) { str[i]=fgetc(fpa); i++; } rewind(fpb); while (!feof(fpb)) { str[i] = fgetc(fpb); i++; } str[i] = '\0'; for (i = 0; str[i+1] != '\0'; i++) { k = i; for (j = i + 1; str[j] != '\0'; j++) { if (str[k] > str[j]) { k = j; } } if (i != k) { t = str[i]; str[i] = str[k]; str[k] = t; } } if (!(fpc = fopen("D:\\C.txt", "w"))) { perror("出错原因:"); Sleep(3000); return 0; } fputs(str, fpc); fclose(fpa); fclose(fpb); fclose(fpc);}
展开
 我来答
paniarch
2015-09-28 · TA获得超过288个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:147万
展开全部
你检查下是不是换行符也计算进去了,windows 下是 0x0d 和 0x0a
追问
估计是。但不知怎么修改,能劳烦下帮忙改改吗
追答

我帮你改有什么意义。。。

在读完文件a和b后面,把读到的内容的数值打印出来看一下

比如

j=i;
while (j-->0)
    printf("str[%d]=%02x\n", j, (unsigned char)str[j]);

再把不需要的字符去掉就好了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式