用C语言将每个文件名和内容写入另一个文件
所以我对C语言有点陌生,我正在尝试从其他文件(比如一些存档程序)创建一个.dat文件。我正在使用参数在命令行中指定要写入.dat文件的文件,我编写的pack函数似乎正在工作 问题是,我也想创建一个解包函数。我不确定这是否是最简单的方法,但我想将参数(我要打包的文件的名称)复制到它的内容中,因此稍后,在解包函数中,我可以在.dat文件中搜索它并解包 我正在使用此代码将文件写入.dat:用C语言将每个文件名和内容写入另一个文件,c,file,strcat,C,File,Strcat,所以我对C语言有点陌生,我正在尝试从其他文件(比如一些存档程序)创建一个.dat文件。我正在使用参数在命令行中指定要写入.dat文件的文件,我编写的pack函数似乎正在工作 问题是,我也想创建一个解包函数。我不确定这是否是最简单的方法,但我想将参数(我要打包的文件的名称)复制到它的内容中,因此稍后,在解包函数中,我可以在.dat文件中搜索它并解包 我正在使用此代码将文件写入.dat: if(!wanttoArchive){ printf("Cannot o
if(!wanttoArchive){
printf("Cannot open %s file\n",argv[i]);
} else {
fseek(wanttoArchive, 0L, SEEK_END);
pos = ftell(wanttoArchive);
fseek(wanttoArchive, 0L, SEEK_SET);
while (pos--){
ch = fgetc(wanttoArchive);
fputc(ch, archived);
}
}
我想在fputc内部使用strcat,但它不起作用
任何形式的帮助都将不胜感激 应该使用偏移量,而不是使用字符串操作。在开始处写入要写入的文件的长度,以便知道文件何时结束,并可以转到下一个文件。如果希望以后能够解压缩文件,则需要在打包的文件中有一些可识别的标记,解包程序可以搜索这些标记,将其识别为文件的开头。正如@Eun所建议的,我还将保留文件的大小和文件名。通过逐字节复制文件,发布的代码不起任何作用。没有关于文件开始、长度、名称的信息是的,我知道,我只是复制了复制文件的部分。我也有同样的想法,但是除了fputc,还有什么函数可以写入文件吗?所以我可以添加一些解包可以识别的东西。或者您是如何将令牌添加到每个文件的开头的?(如果我写错了,对不起,英语不是我的母语,如果我问了愚蠢的问题,也对不起)