C言語の標準ライブラリのrewind関数を使用して、「ファイル読み込みでインデックスを先頭に戻す」方法をまとめています。
rewind関数で、読み込みが終わったファイル読み込みのインデックスの位置を先頭に戻すことができます。
rewind関数は、C言語の標準ライブラリ(stdio.h)にあります。rewind関数のプロトタイプ宣言は以下です。
void rewind(FILE *stream);
ファイル読み込みの位置を保管するファイルポインターをrewind関数の引数のFILE *streamに設定して、rewind関数を呼び出します。
例えば、以下のように呼び出します。
FILE *fp; // ファイル読み込みの位置を保管するファイルポインター : rewind(fp); // rewind関数の呼び出し
rewind関数を呼び出すと、ファイル読み込みの位置を保管するファイルポインターに保存されていたインデックスの位置を先頭に戻すことができます。
サンプルコードです。stdlib.hは、ファイル読み込みできない場合の処理でexit関数を使用するためインクルードしています。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE *fp;
char ch;
// ファイル読み込み&ファイルが読み込めない場合は終了
fp = fopen("sample.txt", "r");
if (fp == NULL) {
printf("sample.txtを用意してください。");
exit(1);
}
// fpが先頭なので読み取れる
printf("1)pが先頭なので読み取れる\n");
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
putchar('\n');
// fpが終わりを挿しているため読み取れない
printf("2)fpが終わりを挿しているため読み取れない\n");
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
putchar('\n');
// fpが先頭なので読み取れる
rewind(fp);
printf("3)pが先頭なので読み取れる\n");
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
putchar('\n');
fclose(fp);
return 0;
}
Windows上にインストールしたbcc32(Borland C++コンパイラー)を使用して動作確認する例です。
bcc32コマンドの引数にソースファイルを指定して、実行します。
> bcc32 sample.c
ファイル読み込みのサンプルですので、ファイル読み込み用のファイルsample.txtが必要です。
ここでは、sample.txtに「Hello World!!」という文字を記述して保存します。
Hello World!!
ファイル読み込み用のファイルsample.txtなどがあるか確認。
> dir /B sample.c sample.exe sample.obj sample.tds sample.txt
> sample 1)pが先頭なので読み取れる Hello World!! 2)fpが終わりを挿しているため読み取れない 3)pが先頭なので読み取れる Hello World!!
Linux上にインストールしたgccを使用して動作確認する例を示します。
$ gcc -o sample sample.c $ ls sample sample.c
ファイル読み込み用のファイルsample.txtが必要です。 sample.txtに「Hello World!!」という文字を記述して保存します。
Hello World!!
ファイル読み込み用のファイルsample.txtなどがあるか確認。
$ ls sample sample.c sample.txt $ cat sample.txt Hello World!!
$ ./sample 1)pが先頭なので読み取れる Hello World!! 2)fpが終わりを挿しているため読み取れない 3)pが先頭なので読み取れる Hello World!!
C言語とC++についてまとめています。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
3.133.123.30
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…