[pear_error: message="Success" code=0 mode=return level=notice prefix="" info=""]
バイナリファイルの読み込みは、fread()関数を使います。また、fopen()関数のオープンモードを、"r" から "rb" に変更する必要があります。バイナリファイルを読み込む際に "r" のままだと、テキストファイルとして扱ってしまう為、0x1A(EOF)文字があった場合にテキストファイルの終わりと判断してしまい、最後まで読み込まれないという不具合が生じてしまいます。 fread 書式 size_t fread( void *buf, size_t size, size_t num, FILE *fp ) 機能 バイナリファイルを読み込む 引数 void *buf : バイナリデータを受け...
勇躍のゴミ箱 | 2008.11.02 Sun 15:14
CSVファイルの読み込み方法は、少し特殊な事してます。そもそも、CSVファイルとは、データが『,』(カンマ)で区切られているファイルの事で、エクセルなんかでも作成、読み込みが出来るメジャーでシンプルな構造のファイルです。で、CSVファイルを読み込むのに適しているのは、書式付きで読み込む事が出来て、カンマ区切りで読み込んでくれるfscanf()関数ですので早速、試してみます。前回と内容は同じですが、カンマで区切られた「comma.csv」というCSVファイルを読み込みます。test01,10,11,1.0,1.1test02,20,21,2.0,2.1test03,30,31,...
勇躍のゴミ箱 | 2008.11.02 Sun 15:14
ファイル読み込みの続き。fgetc()や、fgets()は、テキストファイルをそのまま文字として読み込んでいました。今回は、書式が決まっているfscanf()を見てみます。文字だけでなく、整数や小数を数値として読み込む事が出来ます。意外とコレが曲者で・・※ CSVファイルの読み込みは、こちら。 fscanf 書式 int fscanf( FILE *fp, const char *format, ... ) 機能 書式付き(空白やカンマ区切り)ファイルを読み込む 引数 FILE *fp : ファイル(ストリーム)ポインタconst char *format : 書式文字列... : 可変個引数。書式で...
勇躍のゴミ箱 | 2008.11.02 Sun 15:14
ファイルを「開く」、「閉じる」の次は、テキストファイル読み込みです。テキストファイルを読み込む関数は、まずはfopen()で取得したFILE型変数を使用します。いくつかあるので順番に見ていきます。 fgetc 書式 int fgetc( FILE *fp ) 機能 ファイルから1文字ずつ読み込む 引数 FILE *fp : ファイル(ストリーム)ポインタ 戻り値 成功すると、読み込んだ1文字を返し、ファイル終端の場合は、EOF(-1)を返します。 getc 書式 int getc( FILE *fp ) 機能 fgetc()と同じ機能の関数で、マクロ定義されて...
勇躍のゴミ箱 | 2008.11.02 Sun 15:13
前回は、ファイルを開いてみました。ファイルを開く時は fopen()関数のモード引数(第2引数)を、読み取り用の"r"に設定しましたが、書き込む場合や、追加する場合のオープンモードを見てみます。オープンモードの文字列は最大3文字で構成されます。 第1文字目群 r [Read] ファイル読み取りモードファイルが無い場合は、NULLを返す。 w [Write] ファイル書き込みモードファイルが無い場合は、新規作成する。ファイルがある場合は、元ファイルの内容を破棄して書き込む。 a [Append] ファイル追加書き込みモードファイル...
勇躍のゴミ箱 | 2008.11.02 Sun 15:13
今回はstdio.hで宣言されている、fopen()関数を使用してファイルを開くところから試してみたいと思います。 fopen 書式 FILE *fopen( const char *filename, const char *mode ) 機能 ファイルを開く 引数 const char *filename : 開くファイル名を指定const char *mode : ファイルオープンのモード 戻り値 成功すると、ファイル(ストリーム)のポインタを返し、失敗すると、NULLを返します FILE構造体 宣言 typedef struct{ unsigned char *curp; unsigned char *buffer;&...
勇躍のゴミ箱 | 2008.11.02 Sun 15:13
stdio.hには、標準入出力に関する関数が宣言されています。ちなみに、標準入出力とは標準入力 = キーボード標準出力 = ディスプレイ標準エラー出力 = ディスプレイ標準プリンタ出力 = プリンタ標準補助入出力 = シリアル通信などと、通常はなっています。で、それぞれマクロが定義されて標準入力:stdin標準出力:stdout標準エラー出力:stderr標準プリンタ出力:stdprn標準補助入出力:stdauxと、定義されています。※VC8や、C++Builderには、stdprnとstdauxは定義されていないようです。 MS-DOSの時代で無くなったとかなんとか。
勇躍のゴミ箱 | 2008.11.02 Sun 15:13
stddef.hでは、共通の型とマクロ定義があります。何が共通なんだという話ですが、どうやら、標準ライブラリ内で共通に使用される(インクルードされる)、という意味らしいです。 共通定義 NULL ヌルポインタどのアドレスも指していないポインタ size_t sizeof演算子やstrlen()での戻り値の型int型でも良いが、長さを明示的に表す為にあります wchar_t ワイド文字型unsigned short型で定義されています2バイト文字を表す為にあります ptrdiff_t ポインタ同士の引き算の結果の型int型でも良いが、同じ配列で、要素同...
勇躍のゴミ箱 | 2008.11.02 Sun 15:12
stdarg.hには、可変個の引数を取得するマクロが定義されています。可変個の引数とは、"..."で表される引数です。printf( "%d, %d", a, b );の「a, b」のように、数が決められていない引数のことを可変個の引数といいます。va_list可変個の引数を格納する為の変数(可変引数リスト)。実際には、typedef void *va_list ; という形で定義されてます va_start 書式 void va_start( va_list ap, paraNum ) 機能 可変個引数リストの初期化 引数 va_list ap : 可変個引数リストparaNum : 初期化する数 戻り値 なし va_...
勇躍のゴミ箱 | 2008.11.02 Sun 15:12
signal.hには、シグナル処理の関数が宣言されています。 signal 書式 void ( *signal( int sig, void (*func)(int) ) ) (int) 機能 指定シグナル番号を受信した際に指定関数の実行 引数 int sig : シグナル番号void (*func)(int) : 実行される関数 戻り値 なし raise 書式 int raise( int sig ) 機能 指定シグナル番号のシグナルを送信 引数 int sig : シグナル番号 戻り値 なし
勇躍のゴミ箱 | 2008.11.02 Sun 15:12
全932件中 901 - 910 件表示 (91/94 ページ)