| ヘッダ | stdio.h |
| 書式 | FILE *fopen(char *path, char *mode); |
| 引数 | path … オープンするファイルのパスを示す文字列ポインタ mode … ファイルをオープンする際のモード(下記) r :テキストファイルを読み込み用に開く r+ :テキストファイルを読み書き両用に開く rb :バイナリファイルを読み込み用に開く rb+:バイナリファイルを読み書き両用に開く w :テキストファイルを書き込み用に開く w+ :テキストファイルを読み書き両用に開く wb :バイナリファイルを書き込み用に開く wb+:バイナリファイルを読み書き両用に開く a :テキストファイルを追記用に開く。 a+ :テキストファイルを読み書き両用で追加あるいは作成する ab :バイナリファイルを追記用に開く ab+:バイナリファイルを読み書き両用で追加あるいは作成する |
| 戻り値 | 成功:ファイルポインタ 失敗:NULL |
| 解説 | 指定されたファイルを指定されたモードで開く |
実行ファイルと同じディレクトリにある「test.txt」を開き、
ファイルから1バイトずつ読み込んで1バイトずつ標準出力する。
/****************************************************************************/
#define _CRT_SECURE_NO_DEPRECATE 1 // VisualC++を使用する場合の警告抑制
#include<stdio.h>
int main()
{
FILE *fp;
int chk;
int c;
// 実行ファイルと同じディレクトリにある「test.txt」を開く
fp = fopen("test.txt", "r");
if(fp == NULL) // ファイルがオープンできない場合
{
fprintf(stderr, "ファイルオープンエラー\n");
return 1;
}
// ファイルから1バイトずつ読み込んで1バイトずつ標準出力する
while(1)
{
c = fgetc(fp); // ファイルから1バイト読み込む
if(feof(fp)) // ファイル終端の場合
{
break; // ループを抜ける
}
if(ferror(fp)) // 入力ストリームエラーの場合
{
fprintf(stderr, "ストリームエラーです\n");
break;
}
fputc(c, stdout); // 1バイト標準出力
}
// カレントディレクトリにある「test.txt」を閉じる
chk = fclose(fp);
if(chk != 0) // ファイルクローズ失敗
{
fprintf(stderr, "ファイルクローズエラー\n");
return 1;
}
return 0;
}
/****************************************************************************/
プログラムで使用するtest.txtの内容
--------------------------
abc
123
XYZ
--------------------------

Copyright(c) 2010 , cgengor
このWebページの内容を無断で複製または転載することを禁じます。
このWebページの情報を利用することにより発生したいかなる損害について著作権保有者はいっさいの責任を負いません。