プログラムによるファイルコピー

CBeginner
オンラインで実践に進む

はじめに

この実験では、1 つのファイルの内容を別のファイルにコピーするための C プログラムを作成します。ソースファイルから読み取り、その内容を宛先ファイルに書き込みます。

ファイル構造

main.c という名前の新しい C ファイルを作成します。このファイルにはプログラムのロジックが含まれます。

必要なライブラリをインクルードする

ファイルを操作するために、プログラムに stdio.h ライブラリをインクルードする必要があります。

#include <stdio.h>

ファイルポインタを宣言する

ソースファイル用と宛先ファイル用の 2 つのファイルポインタを宣言する必要があります。

FILE *fp1, *fp2;

ソースファイルを開く

ソースファイルを読み取り用に開く必要があります。ファイルを開けない場合は、エラーメッセージを表示してプログラムを終了します。

if ((fp1 = fopen("source.txt", "r")) == NULL) {
    printf("\nFile cannot be opened.");
    return;
}

宛先ファイルを開く

書き込み用に宛先ファイルを作成して開く必要があります。

fp2 = fopen("destination.txt", "w");

ファイル内容をコピーする

ソースファイルを 1 文字ずつ読み取り、ファイルの末尾に達するまで宛先ファイルに書き込みます。

char ch;
while ((ch = fgetc(fp1))!= EOF) {
    fputc(ch, fp2);
}

ファイルを閉じる

内容をコピーした後、両方のファイルを閉じる必要があります。

fclose(fp1);
fclose(fp2);

まとめ

この実験では、1 つのファイルの内容を読み取り、別のファイルに書き込む方法を学びました。ファイルを開くために fopen() 関数を使用し、ファイルの内容を読み取り書き込むために fgetc()fputc() 関数を使用しました。タスクを完了した後は、fclose() 関数を使用してファイルを閉じることが不可欠です。