C++の基本

大量のデータを扱うために

一度に何百枚もの写真を処理したり、長い動画ファイルを処理したりするなら、結果をファイルに保存するのはほぼ必須と言っても良いでしょう。このステップでファイル出力をマスターしましょう。準備としてWindowsのVisual Studioでは先頭に#define _CRT_SECURE_NO_WARNINGSと記述する必要があります。これは警告を抑制するという意味です。_CRT_SECURE_NO_WARNINGSをdefineしない場合、複数のプログラムで同じファイルを開いた時に衝突することを警告するためにプログラムが動きません。

#define _CRT_SECURE_NO_WARNINGS

ファイルに出力する

ファイルを開くfopen()関数、ファイルに書き込むfprintf()関数、ファイルを閉じるfclose()関数を使います。出力する文字列に変数の値を含めることができます。変数の内容を書き出すには文字列中に %d などの記号をひとまず置いておき、後からその場所に変数の値を入れ込んでファイルに書き込みます。例えば、xの値が10である時に、fprintf(fp, “xの値は%dです\n”,x); と書けば、”xの値は10です”と出力されます。整数値の時には %d を使いますが、浮動小数点型の時には %f を使います。それから、プログラムの終了前にfclose()関数でファイルを閉じるのを忘れないようにしてください。WindowsとMacでファイルへのパスの記述法が異なるので注意が必要です。また、%を出力したい時には%%というように2つ重ねる必要があります。

#include <stdio.h>
using namespace std;
int main(){
    FILE* fp; //ファイルの場所を保持する入れ物 FILE*は型の名前
    //下は出力するテキストファイルのパスを指定する文
    char filename[] = "output¥¥output.txt"; //Windowsの場合 パス中の¥は重ねて¥¥とする
    char filename[] = "output/output.txt"; //Macの場合
    fp = fopen(filename, "w"); //"w"は書き込み可能な状態でファイルを開くことを指定
    for(int i=0; i<10;i++){
        fprintf(fp, "%dの2乗は%dです\n",i , i*i); //ファイルに書き込み
    }
    fclose(fp); //ファイルを閉じる
    return 0;
}