工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++ファイル処理:オープン、読み込み、書き込み、クローズ操作をマスター

C++におけるファイル処理とは

ファイル処理により、プログラムデータをストレージデバイスに永続化できます。プログラム出力をファイルに出力することで、そのデータに対するさらなる操作、分析、アーカイブが可能になります。

ストリームは、文字の連続的なソースまたはデスティネーションを表す抽象化です。C++は堅牢なfstreamライブラリを提供し、ファイルをシームレスに扱うためのクラスと関数を提供しています。

このチュートリアルで学ぶ内容:

fstreamライブラリ

fstreamライブラリは3つのコアクラスを提供します:

以下はクイックリファレンスです:

fstreamクラス階層図

これらのクラスを使用するには、fstreamヘッダをインクルードし、コンソール出力も必要ならiostreamもインクルードします。

ファイルのオープン方法

ファイル操作の前に、ファイルをオープンする必要があります。書き込み専用ならofstream、読み込み専用ならifstream、両方ならfstreamを使用します。各クラスはopen()メンバを提供します:

open(file_name, mode);
値説明
ios::app追記モード – 書き込みがファイル末尾に追加される
ios::ateオープンと同時に末尾へシーク
ios::in読み込み用にオープン
ios::out書き込み用にオープン
ios::trunc既存ファイルをゼロ長に切り詰める

複数のフラグはビット演算子OR(|)で結合可能です。

例1:ファイルの作成

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream my_file;
    my_file.open("my_file", ios::out);
    if (!my_file) {
        cout << "File not created!";
    } else {
        cout << "File created successfully!";
        my_file.close();
    }
    return 0;
}

出力:

ファイル作成成功の出力

実行中のプログラムのスクリーンショット:

プログラム実行画面

コードウォークスルー:

  1. コンソールI/O用にiostreamをインクルード
  2. ファイルストリーム用にfstreamをインクルード
  3. 簡潔さのためstd名前空間を使用
  4. my_fileという名前のfstreamオブジェクトをインスタンス化
  5. 書き込みモード(ios::out)でファイルをオープン
  6. オープン成功をチェック;失敗なら失敗を報告
  7. 成功なら確認メッセージを出力しファイルをクローズ
  8. 正常終了を示す0を返却

ファイルのクローズ方法

C++はプログラム終了時にストリームを自動的にフラッシュ・クローズしますが、最後の操作後に明示的にファイルをクローズすることは良い習慣とされます。

close()メンバはfstream、ofstream、ifstreamで利用可能です:

void close();

ファイルへの書き込み方法

書き込み操作にはストリーム挿入演算子(<<)を使用します。格納するテキストはクォートで囲むか直接ストリームします。

例2:テキストの書き込み

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream my_file;
    my_file.open("my_file.txt", ios::out);
    if (!my_file) {
        cout << "File not created!";
    } else {
        cout << "File created successfully!";
        my_file << "Guru99";
        my_file.close();
    }
    return 0;
}

出力:

ファイル書き込みの出力

コードのスクリーンショット:

例2のソースコード

コードウォークスルー:

  1. 必要なヘッダをインクルード
  2. fstreamオブジェクトを作成
  3. 対象ファイルを書き込みモードでオープン
  4. ファイルストリームを検証
  5. 文字列"Guru99"をファイルに挿入
  6. ストリームをクローズ
  7. 0を返却

ファイルからの読み込み方法

読み込みにはストリーム抽出演算子(>>)を使用します。cinと同様に、データが適切な型の変数にストリームされます。

例3:文字の読み込み

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream my_file;
    my_file.open("my_file.txt", ios::in);
    if (!my_file) {
        cout << "No such file";
    } else {
        char ch;
        while (1) {
            my_file >> ch;
            if (my_file.eof()) break;
            cout << ch;
        }
    }
    my_file.close();
    return 0;
}

出力:

ファイル読み込みの出力

実行中のコードのスクリーンショット:

例3の実行画面

コードウォークスルー:

  1. iostreamとfstreamをインクルード
  2. 読み込み用(ios::in)にファイルをオープン
  3. 存在チェック;存在しない場合はユーザーに通知
  4. EOFに達するまで文字を1つずつ読み込み
  5. 各文字をコンソールに出力
  6. ストリームをクローズ
  7. 0を返却

まとめ

C言語

  1. マイクロメーター完全ガイド:読み方・使い方・種類を徹底解説
  2. ミルファイル(平ヤスリ)完全ガイド:木工・金工の必須工具
  3. C言語 ファイル入出力: fopen, fprintf, fread, fseek をマスターする
  4. C++例外処理をマスター:try、catch、throwの実践例
  5. C 言語のコメント完全ガイド: 明確で効果的な注釈の書き方
  6. C言語ヘッダーファイルの理解:種類、使い方、ベストプラクティス
  7. C++ファイルI/O完全マスター:fstreamによる読み書き
  8. C++シグナル処理をマスター:安全な割り込み管理とクリーンなプログラム終了
  9. VHDLのTEXTIOライブラリでテキスト・ファイルからFPGAブロックRAMを初期化する
  10. PythonファイルI/O:入出力操作をマスターする
  11. Java BufferedReader でファイル読み込み:実践ガイドと例