C++:ファイルの読み書き

本物のページはこちら→file

ファイルの有無をチェックする

#include <filesystem>
ifstream is(m_inifile, ifstream::binary);
    if (!is.is_open()) {
        tr2::sys::path mypath;
        cout << "current firectory" << tr2::sys::current_path().string() << endl;
        cout << "try to open:" << m_inifile << endl;
        assert(!"setting.ini not found");
    }
    is.close();

比較表

一連のメソッド

  ファイル作成 読み 書き 閉じる 既存ファイルクリア
WinAPI CreateFile ReadFile WriteFile CloseHandle(HANDLE) TRUNCATE_EXISTING
c++ STL ifstream.open("ファイル名",ios::in or out?);  ifstream ofstream 変数名.close() ios::trunc
c FILE read write 変数名.close() 
MFCのCFile stdFile.Open(_T("パス"),read or write)) Read() Write() 変数.Close(); modeCreate

長所短所

  長所 短所
WinAPI 非同期IOが出来る
c++ STL スマート .txtの読み書きに便利
c  fscanf()は便利 Android NDKでも使える
MFCのCFile

ファイル開く段階のエラーハンドリング

一覧表
エラー確認段階 WinAPI c++ c
ファイル名が間違っていないかどうか if(handle==INVALID_HANDLE_VALUE) is_open() fp==NULL
#include <windows.h>
HANDLE handle;
        DWORD dwnumread;
        handle = CreateFile("ファイル名", GENERIC_READ,FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL );
        if(handle==INVALID_HANDLE_VALUE){cout<<_filename<<endl;assert(!"ファイルが存在しません");}

サポートサイト Wikidot.com