C 言語でファイルを作成して書き込む

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

はじめに

この実験では、C 言語で新しいファイルを作成し、そこにデータを書き込む方法を学びます。C 言語では、FILE データ型がファイルを表すために使用され、fopen() 関数がファイルを読み取り、書き込み、または追記するために開きます。ファイルが開かれると、fprintf() 関数を使用してそこにデータを書き込むことができ、データを書き込んだ後は fclose() 関数を使用してファイルを閉じます。

端末を使って新しい C プログラムを作成する

ターミナルを開き、次のコマンドを使って ~/project/ ディレクトリに main.c という名前の新しい C プログラムを作成します。

nano ~/project/main.c

必要なヘッダーファイルをインクルードする

main.c ファイルに、必要なヘッダーファイルをインクルードします。

#include <stdio.h>
#include <stdlib.h>

変数とポインタを定義する

ファイルとその内容を保持するために、FILE 型の変数とポインタを定義します。

FILE *fptr;
char name[20];
int age;
float salary;

書き込み用にファイルを開く

fopen() 関数を使って書き込み用にファイルを開きます。ファイルが存在しない場合、そのファイルが作成されます。そうでない場合、その内容は上書きされます。

fptr = fopen("emp.txt", "w");
if (fptr == NULL)
{
    printf("File does not exist.\n");
    return 1;
}

ファイルにデータを書き込む

ユーザーに社員の名前、年齢、給与を入力してもらい、fprintf() 関数を使ってそれをファイルに書き込みます。

printf("Enter the name:\n");
scanf("%s", name);
fprintf(fptr, "Name  = %s\n", name);

printf("Enter the age:\n");
scanf("%d", &age);
fprintf(fptr, "Age  = %d\n", age);

printf("Enter the salary:\n");
scanf("%f", &salary);
fprintf(fptr, "Salary  = %.2f\n", salary);

ファイルを閉じる

fclose() 関数を使ってファイルを閉じます。

fclose(fptr);

コードを完成させる

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fptr;
    char name[20];
    int age;
    float salary;

    // 書き込み用に開く
    fptr = fopen("emp.txt", "w");
    if (fptr == NULL) {
        printf("File does not exist.\n");
        return 1;
    }

    printf("Enter the name:\n");
    scanf("%s", name);
    fprintf(fptr, "Name  = %s\n", name);

    printf("Enter the age:\n");
    scanf("%d", &age);
    fprintf(fptr, "Age  = %d\n", age);

    printf("Enter the salary:\n");
    scanf("%f", &salary);
    fprintf(fptr, "Salary  = %.2f\n", salary);

    fclose(fptr);
    return 0;
}

まとめ

この実験では、C 言語で新しいファイルを作成し、FILEfopen()fprintf()、およびfclose()関数を使ってそのファイルにデータを書き込む方法を学びました。データを書き込んだ後は必ずファイルを閉じてデータの損失を避けることを忘れないでください。