

ループにて、複数のファイル(.txt)を同時に読み込む方法はあるのでしょうか。(厳密に言えば、完全に同時ということではなく、時間差をつけてということ)。以下のプログラムではループ自体が行われていないようでした。while分とfreadの使い方に問題があると思うのですが…
~略~
int a,b;
FILE *fp1,*fp2;
fp1 = fopen(…,"r");
if(fp1 == NULL)
{・・・;}
fp2 = fopen(…,"r");
if(fp2 == NULL)
{・・・;}
while((a = fread(…,1,8,fp1)) != 0)
{
while(fread(…,1,8,fp2))
{
~略~
}
}
fclose(fp1);
fclose(fp2);
以下略~
また、2つ目のwhileを削除し次のようにすると1つ目のファイル(fp1)は読み込めるのですが、2つ目のファイル(fp2)が読み込めていないようでした。
~略~
while((a = fread(…,1,8,fp1)) != 0)
{
b = fread(…,1,8,fp2);
以下略~
解決方法を教えていただけないでしょうか。
次にいわゆる脱初心者向け(?)ともいえる参考書について。
初心者向けの入門書に載っている関数についての説明などは、どれも最も基本的な機能についてのものがほとんどで、少し応用したものは載ってません。
また、多少上級向けになると、例えば「int sprintf(char *buf,const char *format,…)」や、「int printf(const char *format,…)」といった具合にいかにも専門書らしくなっています。また使用例も、他に見たこともない関数が同時に出てきてまるで手がつけられません。
それはそれで重要なことであるのはわかるのですが、「sprintf(s,"%d%d",a,b) s文字配列、a,b整数値」という理解しやすい書き方をあわせて載せてある、「関数辞典」みたいな参考書とかは市販されているのでしょうか。私の理想通りの物とまでは言いませんが、お薦めのものを推薦していただければ幸いです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
関数の使い方の問題でなく、考え方の問題かも。
> FILE *fp1,*fp2;
ファイルは「本」、ファイルポインタは「しおり」と例えます。
複数(仮に5冊)の本を読むのに、ファイルポインタを2つ宣言しています。
2枚のしおりをどう使えば、5冊の本の全てのページを網羅する事ができるでしょうか?
って事を考えると、しおりが2枚なのは誤りで、5枚のしおりを使うか、1枚のしおりを使いまわすかの方が良いと思いませんか?
--
または、5冊の本の題名を書いた別の5ページ本が1冊あるのなら、何枚のしおりをどう使えば良いか?って事とか。
No.4
- 回答日時:
再びNo.2です。
私は「なにをしたい」のか書いてはどうかとアドバイスしているのですが、
回答者の書いていることをきちんと読んでいますか?
前回の質問でも回答者に対していい加減としか思えないお礼で済ませているし、
今回もまた同じ調子ですね。
>一つのファイルを幾つかの関数で試したことはあるにはあるのですが
これは誰に対する言い訳ですか?
私には言い訳なんて必要ありません。
テキストファイルを扱うと言いつつfread()を使う辺り、
まともに動くものが書けているとは思えませんから。
#fread()では不可能と言うことでなく、そういう方針では無理だと言うことです。
プログラミングに王道はありません。
一歩ずつ地道にやるか、誰かに丸投げするか、どちらかを選択するしかないと思いますが如何?
プログラムの目的は、二つのファイルの中身を文字列として読み込み、特定の文字の数を数えたりしてみようとしたものです。
思うように動作しなかったのは、勘違いでの記述ミスでした。修正後、結果としては目的どおりになりました。
大変お手数をお掛けして申し訳ありませんでした。

No.3
- 回答日時:
少なくとも、fread の第一引数が、... では、どこがどう間違っているのか判断のしようがありません。
また、「ループ自体が行われていないようです」や、「2つめのφ卯が読み込めてないようでした」というのは、どのように確認されたのでしょう。
確認方法自体が間違いだったり、勘違いだったという可能性も高いのですが。
ご回答ありがとうございます。
質問は勘違いから投稿してました。記述ミスでうまくいかなかったみたいです。少なくとも結果的には目的どおりになりました。お手数をお掛けしました。申し訳ありませんでした。
No.2
- 回答日時:
何度も同じようなレベルの質問を繰り返すより、
いっそ「なにをしたい」か書いてしまったほうが宜しいのでは?
そもそも一つのファイルを読み込んで何か処理するプログラムを書いたことはありますか?
それさえできないのに複数のファイルをいきなり扱うのはかなり無謀だと思いますが。
#例えば、教習所も出ていないのにレースに出るようなものでしょうかねぇ。
ご回答ありがとうございます。
>そもそも一つのファイルを・・・
全てではありませんが、一つのファイルを幾つかの関数で試したことはあるにはあるのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
c言語 2つのファイルを行ごとに読み込むプログラミング
C言語・C++・C#
-
大量の入力ファイルを扱うとき、for文などで簡略化できる?
C言語・C++・C#
-
C言語のfopenについて教えてください。
C言語・C++・C#
-
-
4
複数のテキストファイルを1つにまとめる
C言語・C++・C#
-
5
atoi( ) の反対をやりたい
C言語・C++・C#
-
6
C言語---ファイルに出力したデータをすべて消去する方法
C言語・C++・C#
-
7
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
8
複数テキストファイルを読み込み、複数テキストファイルの出力
C言語・C++・C#
-
9
fopenでディレクトリ内の全ファイルを順次開く方法
C言語・C++・C#
-
10
C言語 配列の長さの上限
C言語・C++・C#
-
11
make時に出てきたエラーメッセージの意味が分からなく困っています。
その他(コンピューター・テクノロジー)
-
12
特定の文字列が一致する行から、文字列を抽出する方法
C言語・C++・C#
-
13
[C言語]2つのファイルを用いたプログラムについて
C言語・C++・C#
-
14
C言語 連番データの読み込み
C言語・C++・C#
-
15
C言語で特定の行を抽出する方法を教えてください。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの内容の表示
-
fgets( ) の返り値は何?
-
Winsockの通信処理にてファイル...
-
'strcpy': 識別子が見つかりません
-
画像の白黒表示
-
最早開始時間と最遅完了時刻を...
-
信頼区間の1.96や1.65ってどこ...
-
Aの値からBの値を除するとは??
-
strncpyと_tcsncpy_sのヌルの扱...
-
プログラムでの数字につく”f”の...
-
gcc: incompatible pointer type
-
CStringのFindで文字列検索を行...
-
#define _CRT_SECURE_NO_WARNIN...
-
Enterキーを押されたら次の処理...
-
「Aに対するBの割合」と「Aに対...
-
正の数aは4の倍数で、7でわると...
-
有効数字について 以前質問をし...
-
2÷3などの余りについて
-
構文エラー";"が型の前にあり...
-
変数とパラメータとは違うもの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数ファイルの同時読み込みの...
-
C言語の課題です
-
ファイル出力で改行を入れたい!
-
fgets( ) の返り値は何?
-
C言語でファイル読み書きを早く...
-
fopenでファイル名に、変数を使...
-
ファイルに行番号を追加
-
テキストファイル内に対して, ...
-
ファイルへの書込み処理が異常...
-
C言語についてアドバイスをくだ...
-
同時にファイル読み込み 書き込み
-
初心者のc言語
-
大量の入力ファイルを扱うとき...
-
【C言語について】ファイル名の...
-
C言語 共用体の構造体の引数設定
-
C言語でのCSVソートとデータ抽...
-
エラーがわかりません、、
-
プログラムの内で、何か画面表...
-
「コマンドライン引数チェック...
-
プログラミングのデータの読み込み
おすすめ情報