C语言实现多个文本合并

在C语言中如何实现多个文本文件的合并我想到的思路就是把要合并的文件放在一个文件夹内,然后运行程序后在这个文件夹内的所有文件的内容将会容进一个文件里... 在C语言中如何实现多个文本文件的合并
我想到的思路就是把要合并的文件放在一个文件夹内,然后运行程序后
在这个文件夹内的所有文件的内容将会容进一个文件里
展开
 我来答
澄子贤j
2007-06-27
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

long filesize(FILE *stream); /* 求文件的长度 */

int main()
{
int i;
char inf1,inf2,outf; /* 用户输入的文件路径 */
FILE *in1, *in2, *out; /*in1,in2为待合并的文件,out为合并后的文件 */
unsigned long in1fileLength,in2fileLength;
char *buf1, *buf2;

printf("------------------------------------------------\n");
printf("> Please input parameter:\n");
printf("> test <InputFileName1><InputFileName2> <OutputFileName>:\n");
printf("------------------------------------------------\n");

printf("These are the command-line arguments passed to"
" main:\n\n");

scanf("%s",inf1); /* 用户输入待合并的文件1 */
if ((in1 = fopen(inf1, "rb")) == NULL)
{
printf("Cannot open input file1.\n");
exit(1);
}
else
printf("file1 is opened,please input the file2\n");
scanf("%s",inf2); /* 待合并文件2 */
if ((in2 = fopen(inf2, "rb")) == NULL)
{
printf("Cannot open input file2.\n");
exit(1);
}
else
printf("file2 is opened,please input the loctation after united\n");
scanf("%s",outf); /* 经过合并操作后存放的路径 */
if ((out = fopen(outf, "wb"))== NULL)
{
printf("Cannot open output file.\n");
exit(1);
}

in1fileLength = filesize(in1); /* 文件1的长度 */
in2fileLength = filesize(in2); /* 文件2的长度 */

buf1 = (char *)malloc(in1fileLength); /* 读出放入缓冲区中 */
buf2 = (char *)malloc(in2fileLength);

fread(buf1,in1fileLength, 1, in1);
fread(buf2,in2fileLength, 1, in2);

fwrite(buf1, in1fileLength, 1, out); /* 写入out文件中 */
fwrite(buf2, in2fileLength, 1, out);
printf("unit is successful!,and the loctation is %s",outf);

fclose(in1); /* 关闭文件 */
fclose(in2);
fclose(out);

return 1;
}

long filesize(FILE *stream) /* 求文件长度的函数 */
{
long curpos1, curpos2,length;

fopen(stream,"rb");
curpos1= ftell(stream);
fseek(stream, 0L, SEEK_END);
curpos2= ftell(stream);
length=curpos2-curpos1;
fseek(stream, curpos1, SEEK_SET);
return length;
fclose(stream);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式