我正在尝试打开一个文件(希望成为一个小型存档),并且我想在其中复制另一个文件内容。代码如下:
FILE * arch;
FILE * par;
void read_words (FILE *f)
{
char x[1024];
while (fscanf(f," %s",x)==1)
{
fprintf(arch," %s", x);
}
}
int main(int argc, char * argv[])
{
char * nome;
nome = argv[1];
archivio = scrivi(getcwd(NULL, 0), nome);
arch = fopen(archivio, "w+");
par = fopen(argv[2], "r+");
read_words(par);
return 0;
}
请假设“档案”是一个工作路径。
我调用函数如下./a.out archiveName FilePath
:
我想要做的就是打开这个存档,然后,在一些fprintf
s(正常工作,此处未显示)打开另一个文件并将其内容写入存档后。
问题出在函数 read_words 中。如果单独使用它可以工作(我从这里获取代码),但是如果我在此处插入它,它就不起作用,因为它甚至没有输入while (fscanf(f," %s",x)==1)
. 事实上存档文件总是空的。
你能帮我找出原因吗?
谢谢
PS:这是我尝试插入的示例文本:
La funzione mkbkp si occupa della creazione di un archivio contenente i file e le cartelle passate come parametri.
奇怪的是,如果你只用 read_words 制作 ac 文件,它就可以正常工作。