Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C语言将每个文件名和内容写入另一个文件_C_File_Strcat - Fatal编程技术网

用C语言将每个文件名和内容写入另一个文件

用C语言将每个文件名和内容写入另一个文件,c,file,strcat,C,File,Strcat,所以我对C语言有点陌生,我正在尝试从其他文件(比如一些存档程序)创建一个.dat文件。我正在使用参数在命令行中指定要写入.dat文件的文件,我编写的pack函数似乎正在工作 问题是,我也想创建一个解包函数。我不确定这是否是最简单的方法,但我想将参数(我要打包的文件的名称)复制到它的内容中,因此稍后,在解包函数中,我可以在.dat文件中搜索它并解包 我正在使用此代码将文件写入.dat: if(!wanttoArchive){ printf("Cannot o

所以我对C语言有点陌生,我正在尝试从其他文件(比如一些存档程序)创建一个.dat文件。我正在使用参数在命令行中指定要写入.dat文件的文件,我编写的pack函数似乎正在工作

问题是,我也想创建一个解包函数。我不确定这是否是最简单的方法,但我想将参数(我要打包的文件的名称)复制到它的内容中,因此稍后,在解包函数中,我可以在.dat文件中搜索它并解包

我正在使用此代码将文件写入.dat:

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,还有什么函数可以写入文件吗?所以我可以添加一些解包可以识别的东西。或者您是如何将令牌添加到每个文件的开头的?(如果我写错了,对不起,英语不是我的母语,如果我问了愚蠢的问题,也对不起)