[C言語][C++]ファイルの入出力[サンプルコードあり]

サンプルコード

こんにちはショウです
今日はC言語、C++でのファイルの入出力について紹介します
サンプルを記載していますので参考にしてください

サンプルソース

早速サンプルのソースを見ながら説明していきます

バイナリファイルの書き込み

fopen_sにて引数で指定されたファイル名のファイルをオープンします
fcloseにてファイルをクローズします
ファイルの操作を行う場合には必須の処理です

fopen_sの第3引数でファイルのオープンモードを指定します

モード動作ファイルがあるときファイルがないとき
"r"読み出し専用正常エラー(NULL返却)
"w"書き込み専用サイズを 0 にする(上書き)新規作成
"a"追加書き込み専用最後に追加する新規作成
"r+","w+","a+"読み書き両方+なしと同じ+なしと同じ
"rb","wb","ab"バイナリの読み込み、
書き込み、
追加書き込み
bなしと同じbなしと同じ

fwriteにてバイナリデータを書き込みします

引数

  • ptr: 書き込むデータへのポインタ
  • size: 要素 1 個あたりの大きさ
  • nmemb: 要素の個数
  • stream: ファイルポインタ

戻り値

  • 成功時: 書き込みした要素の個数 (バイト数ではない)
  • 失敗時: 0

バイナリファイルの読み込み

freadにてバイナリデータを読み込みます

引数

  • ptr: 読み込む領域へのポインタ
  • size: 要素 1 個あたりの大きさ
  • nmemb: 要素の個数
  • stream: ファイルポインタ

戻り値

  • 成功時: 読み込みした要素の個数 (バイト数ではない)
  • 失敗時: 0

テキストファイルの書き込み

fputsにてファイルに1行の文字列を書き込みます

引数

  • s: ストリームに書き込みたい文字列
  • stream: ファイルポインタ

戻り値

  • 成功時: 正の値
  • 失敗時: EOF

テキストファイルの読み込み

fgetsにてファイルから1行文字列を読み込みます

引数

  • s: ストリームに書き込みたい文字列
  • n: 1 行の最大文字数
  • stream: ファイルポインタ

戻り値

  • 成功時: 読み取った文字
  • ファイルの終端時:NULL
  • 失敗時: NULL

各関数の使い方

実行結果

mainを実行した際の結果は下記となります

書き込み完了
読み込み完了
test data
書き込み完了
読み込み完了
1
2
3
4
5
6
7
8
9
10
0
0
0
0
0
0
読み込み完了
test txt data
終了するにはエンターキーを入力してください