ファイル (小さなアーカイブにしたい) を開こうとしていますが、その中の別のファイルの内容をコピーしたいと考えています。コードは次のとおりです。
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;
}
「archivio」が作業パスであると想定してください。
次のように関数を呼び出します./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.
奇妙なことに、ac ファイルを read_words だけで作成すると、正常に動作します。