C言語のきほん「日付と時間の書き込み」

スポンサーリンク
C言語

先回までは、ファイルからの読み取りを行った。

今回は、ファイルへの書き込みを行ってみよう。

標準出力ストリームへの出力を行うprintf関数と同様の処理を、任意のストリームに対して行うのが、
fprintf関数である。

それでは、現在(プログラム実行時)の日付と時間を書き込むプログラムをご紹介しよう。

なお、本プログラムは、
 Windows 11 Home(23H2)上で、 Visual Studio Code(1.92.2)を使用して作成し、gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0で コンパイルしている。

//プログラムを実行した日付・時間を書き出すプログラム

#include <time.h>
#include <stdio.h>

int main(void) {

    FILE *fp;

    if((fp = fopen("dt_dat.txt","w")) == NULL)
        printf("ファイルをオープンできません\n");
    else {
        time_t current = time(NULL);
        struct tm *timer = localtime(¤t);

        printf("現在の日付・時間を書き出しました\n");
        fprintf(fp,"%d %d %d %d %d %d\n",
            timer->tm_year + 1900,timer->tm_mon +1 , timer->tm_mday,
            timer->tm_hour,timer->tm_min,timer->tm_sec);
        fclose(fp);
    }

    return 0;
}

書き出し前のファイルの内容

Nothing will work unless you do.

実行結果

現在の日付・時間を書き出しました

書き出し後のファイルの内容

2024 8 26 20 34 5

このように「西暦年/月/日/時/分/秒」の6個の整数値を空白で区切った上で10進数で書き込んでいる。

なお、本プログラムは、ファイルを書き込みモード“w”でオープンしている。
書き込みモードでは、オープンするファイルが存在すると、その中身が消去される。
そのため、ファイル”dt_dat.txt”には、本プログラムで書き込む内容だけが保存される。

参考)新・明解C言語 入門編 第2版  柴田 望洋(著)

コメント

タイトルとURLをコピーしました