• ベストアンサー

2つのファイルを比較するC言語プログラムについて

はじめまして、C言語プログラミングについて質問です。 2つのファイルの内容を比較するプログラムをC言語で作成する方法 について教えて頂けますでしょうか? 2つのファイルをそれぞれオープンした後、ファイルの先頭から1行ずつ読み込んで比較し、 違いがあればその行を画面表示するという動作をさせたいと考えて おります。

質問者が選んだベストアンサー

  • ベストアンサー
noname#62605
noname#62605
回答No.2

課題の丸投げは、ここのサイトの規定に反しますので、考え方だけ回答します。 まず、いきなりC言語でどうこうするというのではなく頭の中で思ったことを図やフローなどに落とし込んで考えて見ましょう。 まず、何がしたいか? ・概要としては質問欄にある内容でいいと思います。 ・詳細についてはどのように考えていますか?それによってコーディングも変わってきます。  たとえば、「x行目の内容が違います」というような違いがあるだけを表示したいのかそれとも違いがある行の内容まで表示するのか。 →この辺はソフトを開発する上での「仕様」にあたる部分です。 どうやって実現するか? 方法は一つとは限りません。 ・比較方法はどうするか? →取り込むファイルの内容によっても変わってきます。  テキストファイルなら1バイトもしくは2バイトの文字単位で比較するのか?それとも改行コードまで一気に見て違いを見つけるのかで相当違ってきます。  テキストファイルじゃなければそもそもどういったものを比較するのかということも考えなければなりません。たとえば画像ファイルだったらExifの仕様などから判断してヘッダ部を見たり。  また違うと判断する段階をどうするか? →違ったコードが見つかった時点なのか。とりあえず行全部の内容を比較するのか? ・ファイルの終端をどうやって判断するか。 →このプログラムの終了要件になりうるものは何か?

masy0312
質問者

お礼

失礼いたしました。回答して頂いた内容を参考にさせて頂きます。

その他の回答 (1)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>2つのファイルをそれぞれオープンした後、ファイルの先頭から1行ずつ読み込んで比較し、 >違いがあればその行を画面表示するという動作をさせたいと考えて じゃあ、それでどうぞ。

関連するQ&A

  • C言語のテキストファイルの読込み

    必要に迫られてC言語でテキストファイルの読込みを行う プログラムを作成しなければならなくなりました。 whileとfscanfを用いて書式を指定して一行ずつ読込むことができる ということは知っていますが、その際、たとえば読み込むファイルが 20行のテキストファイルだったとして、10行目から読込みを 行いたい場合はどのようにプログラムを書けばいいのでしょうか? なにぶんC言語初心者ですのでよろしくお願いします。

  • [C言語]2つのファイルを用いたプログラムについて

    こんにちは、最近C言語でファイルを扱うプログラムについて学習しているものです。 2つのファイルを用いて合計値と平均値を求めるプログラムについての質問です。 具体的には、以下に示すようなものをC言語で作成しようとしています。 例えば、以下の2つのデータファイルがあるとします。 /*(1)価格表.txt*/ わかめ 195 醤油 300 電球 298 … … … … 納豆 88 (約2000種類) /*(2)買い物リスト.txt*/ 納豆 えび 醤油 … (約500種類) この2つのファイルを用いて、「買い物リスト.txt」に書いてあるすべての商品価格の合計値と、価格の平均値を「価格表.txt」を用いて求めるプログラムをC言語で作成してみたいと考えています。 「価格表.txt」の商品数が少なければ、switch文を用いてプログラムを作成することができると思うのですが、「価格表.txt」の商品数が2000種類くらいある場合だと、どのようにプログラムを作成すればよいかわかりません。 よろしければご教授ください。OSはUbuntuを使っております。 よろしくお願いいたします。

  • 2つのファイルを用いたC言語のプログラムについて

    こんにちは、最近C言語でファイルを扱うプログラムについて学習しているものです。 2つのファイルを用いて合計値と平均値を求めるプログラムについての質問です。 具体的には、以下に示すようなものをC言語で作成しようとしています。 例えば、以下の2つのデータファイルがあるとします。 /*(1)価格表.txt*/ わかめ 195 醤油 300 電球 298 … … … … 納豆 88 (約2000種類) /*(2)買い物リスト.txt*/ 納豆 えび 醤油 … (約500種類) この2つのファイルを用いて、(2)買い物リスト.txtに書いてあるすべての商品価格の合計値と、価格の平均値を「価格表.txt」を用いて求めるプログラムをC言語で作成してみたいと考えています。 「価格表.txt」の商品数が少なければ、switch文を用いてプログラムを作成することができると思うのですが、「価格表.txt」の商品数が2000種類くらいある場合だと、どのようにプログラムを作成すればよいかわかりません。 よろしければご教授ください。OSはUbuntuを使っております。 よろしくお願いいたします。

  • C言語でPICのプログラムをしたいんですが。

    PICをC言語でプログラミングしたいと思っているんですがよくわかりません。 PCの画面に「Hello」とか出すことはできるんですが、PICで動作するCがわかりません。 LEDの点灯(点滅でも)やモーターを動作させたりするプログラムを書きたいんですが イマイチ良く分からず最初の定義文の構成とかもPICだとやっぱり違うのかなって 思っているんです。普通のCですら定義文や構成の意味が微妙な感じ何です。 でもCでかけたらカッコいいなって思ってます。 PICのCに関する入門みたいなサイトや文章があったら教えて下さい。 アセンブラやJAVAについても教えていただくとありがたいです。 まぁでもC言語メインでお願いします。

  • C言語のプログラムについて

    C言語初心者です if分を用いて aが2以上の場合には10 それ以外の場合にはbに100を代入して bの値を画面に表示するプログラムを作成したいです 書き方が分からないので 作成方法を教えていただきたいです よろしくお願いします

  • C言語で書き込んだファイルの重複行の削除と行の並び変えるプログラミング

    C言語で書き込んだファイルの重複行の削除と行の並び変えるプログラミング ファイル名が 0.txt というC言語で書き込んだテキストファイルがあり その中身は以下のようなものとします。 111 000 222 555 000 444 222 000 これらを行ごとに見て重複行を削除し 更に値の小さな順に並び変えたい、つまりファイル内を 000 111 222 444 555 となるようなプログラミングを考えているのですが 調べても分からず悩んでいます。 c言語のプログラム内に UNIXコマンドを扱う方法を考えているのですが c言語内でUNIXコマンドを併用するためのsystem()関数 や 重複行を削除する uniq というUNIXコマンドを どのようにプログラム内に挿入すればいいのでしょうか? ご回答、よろしくお願いいたします。 ちなみに以下のプログラムは system関数が理解できない私の作成失敗したものです。 #include <stdio.h> #include <stdlib.h> int main(void) { system("uniq 0.txt"); }

  • C言語でアナグラムを求めるプログラム

    C言語初心者で、勉強中です。 今アナグラムを求めるプログラムをC言語で作成しています。 内容はあらかじめある英単語が書いてあるテキストファイルから互いにアナグラムとなっている英単語をすべて求めてそれを出力するというプログラムです。 どこから手をつけていいかわからず悩んでいます。 そこでヒントをいただこうと思って質問しました。 どなたか回答よろしくお願いします。

  • C言語でこんなことは可能ですか?

    現在あるプログラムを作りたいと思いC言語の勉強をしています。 それに伴い、下記のプログラムはC言語で作成可能でしょうか。 例) Aのフォルダ内にbというファイル(txt)があるとして、 bのファイル内の「ありがとう」という文字を検索し表示させるプログラム は作成可能でしょうか。表記としては --------------------------------- ファイル名 | 検索文字 ---------------------------------  A    | ありがとう  -------------------------------- としたいと思っているのですが・・・ よろしくお願いします。

  • C言語からのFortranプログラムの呼び出し

    Fortranで記述した以下のような構成の有限要素法プログラムをC言語から呼び出したいのですが,具体的にどのようなコードを記述すればいいのかがわかりません.お教えいただけないでしょうか. サブルーチンinputおよびoutputでは入力および結果ファイルの入出力を行っています. 当方C言語はほぼ初心者です.Fortranのプログラミング環境としてはVisualStudio2005およびVisualFortran9.1を用いています. C言語のプログラミング環境としてはおなじくVisualStudio2005を使用したいとおもっております. [メインプログラム] open (5,file='input.dat') open (6,file='output.dat') /入出力用のファイルを開く call input(parameter1) /各サブルーチンで有限要素法を実行 call bound(parameter2) call matrix(parameter3) call solve(parameter4) call output(parameter5) close (5) /入出力用のファイルを閉じる close (6) stop end

  • C言語でTIFファイルを読み込むプログラムを教えてください。

    C言語でTIFファイルを読み込むプログラムを教えてください。 C言語でTIFファイルを読み込むプログラムを組みたいのですが、テキストや参考書、ネットで調べてもよく分かりません。 もしお分かりになるのでしたらプログラムの一連の流れ(ソースプログラムも書いていただけるとなおさら嬉しいです)を教えていただけると助かります><

専門家に質問してみよう