:: reverse dictionary ::
※ソースファイルについて
ストリームの現在位置を求めるには、ftell 関数を使います。
#include<stdio.h>#include<stdlib.h>#include<string.h>
FILE *fp; char data[256];intnum;longpos1, pos2, pos3; fp = fopen("sample.txt", "rb");if(fp == NULL) { printf("sample.txt を開けませんでした。\n");returnEXIT_FAILURE; } memset(data, 0, sizeof(data)); /* NULL文字で初期化 */ /* 5バイト読み込み 1回目 */ num = fread(data,sizeof(char), 5, fp); pos1 = ftell(fp); /* 5バイト読み込み 2回目 */ num += fread(data + num,sizeof(char), 5, fp); pos2 = ftell(fp); /* 5バイト読み込み 3回目 */ num += fread(data + num,sizeof(char), 5, fp); pos3 = ftell(fp); fclose(fp);
sample.txt の内容が
ABCDEFGHIJKLMNOPQRSTUVWXYZ
となっている場合、data は "ABCDEFGHIJKLMNO" 、pos1 は 5 、pos2 は 10 、pos3 は 15 になります。
long ftell(FILE *fs)
ストリーム fs の現在位置を求めます。
この位置は、先頭からの距離をバイト単位で表した数値になります。
( 5 の場合は 5 バイト目)
ストリームが先頭にある場合は 0 を返します。 エラーが発生した場合は -1 を返し、グローバル変数 errno にエラー番号を設定します。
fs … ファイルストリーム
・ストリームが先頭以外にある … 現在位置(バイト単位)
・ストリームが先頭にある … 0
・エラー … -1
strerror 関数でエラー番号からエラーメッセージを取得できます。
strerror 関数はこちら
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com