• ベストアンサー

二つのファイルから一行ずつ取り出して計算

aaa.txt と bbb.txtというファイルがあり、それぞれ 1.1 0.1 -0.2 0.9 … といった感じで一行ずつ数値が入っています。 C言語を用いて、上記ファイルを読み込み、 この二つのファイルから一行ずつ取り出して足し算を行いたい (例えばaaa.txtの一行目が1.1、bbb.txtの一行目が0.9なら1.1+0.9=2.0) のですが、どうすれば良いでしょうか。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.4

普通に aaa.txtをオープン bbb.txtをオープン 全行について ・aaa.txtから1行読む ・bbb.txtから1行読む ・計算結果を出力 を繰り返す オープンしたファイルをクローズ ってだけですよ。 ところで、Cでやらなければならない理由はありますか? 例えば、UNIX系OSだと、次の1行のコマンドです。 paste aaa.txt bbb.txt | awk '{print $1+$2}' ExcelでA列にaaa.txt,B列にbbb.txtを貼り付けて、C1に=A1+B1→下へコピーでもできます。

sasmostmilk
質問者

お礼

ありがとうございました。 コマンドの方が簡単ですね。

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.3

>また計算結果は新たなファイルを作成し、そこに書き込むようにお願いします。 「どうすれば良いでしょうか」から「私の代わりに作ってください」に変わってる気がしますが。 とりあえず1つのファイルを1行ずつ読み込んで別のファイルに書き出すということはできますか? できないのでしたらまずはそれをできるようになるべきかと思います。

sasmostmilk
質問者

お礼

ありがとうございました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

やっぱり > ファイルマージのアルゴリズムを探すと良いでしょう。 で合ってると思います。 「マージファイル出力の処理部分」を「計算結果出力」にすればOK。

sasmostmilk
質問者

お礼

ありがとうございました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

ファイルを読み出す処理を2つ作って、交互に呼ぶ。 ファイルマージのアルゴリズムを探すと良いでしょう。 でもね ・2つのファイル行数が異なる場合、あるいは0行ならどうするの? ・計算した結果をどうするの?

sasmostmilk
質問者

お礼

ありがとうございました。

sasmostmilk
質問者

補足

ファイル行数は同数、0行はないという前提でお願いします。 また計算結果は新たなファイルを作成し、そこに書き込むようにお願いします。

関連するQ&A

  • 二つのファイルから一行ずつ取り出して計算

    aaa.txt と bbb.txtというファイルがあり、それぞれ 1.1 0.1 -0.2 0.9 … といった感じで一行ずつ数値が入っています。 シェルスクリプトを用いて、 この二つのファイルから一行ずつ取り出して足し算を行いたい (例えばaaa.txtの一行目が1.1、bbb.txtの一行目が0.9なら1.1+0.9=2.0) のですが、どうすれば良いでしょうか。

  • リスト内の数字の足し算

    簡単に出来そうなのですが、解決方法が見つからず困っています。 数値のリストを全て足し算したいのですが、 どのようにすれば良いでしょうか? リストは下記の様に行で数値が書かれています。 aaa.txt ------------------------ 10000 20000 30000 40000 50000 ------------------------ bbb.shの実行結果:150000 としたいのですが、bbb.shをどう書けば良いのか困っています。 aaa.txtは最大で50行、最小で20行程度です。 5分に1回値が変更されます。 whileでlistを使用するという想像は出来るのですが、 足し算の仕方が解りません。 初歩的な質問で恐縮ですが、ご教授頂けないでしょうか? よろしくお願いします。

  • バッチファイルのエラー処理

    困っています。 下記の様な3つで1セットのコピーをバッチで行いたいと考えています。 ◇1 c:\aaa.txt d:\a:\aaa.txt c:\aaa.txt d:\B:\aaa.txt c:\aaa.txt d:\C:\aaa.txt ◇2 c:\bbb.txt d:\a:\bbb.txt c:\bbb.txt d:\B:\bbb.txt c:\bbb.txt d:\C:\bbb.txt ここで、エラー処理を加えて、 c:\aaa.txt d:\a:\aaa.txt がエラーになったら c:\aaa.txt d:\B:\aaa.txt c:\aaa.txt d:\C:\aaa.txt の処理をスキップし、別ファイルに「aaa.txtのコピーを中止しました」と書込み次のファイル「c:\bbb.txt」のコピーを行う。 何度試しても、うまく動きません。 って言うか全然だめです。 誰か教えてください。お願いします。

  • C言語でのファイル検索&ファイル書き換えについて

    C言語である特定のフォルダを指定して、その階層内(サブフォルダも含む)にあるファイル、例えばsample_nameをファイル名に含むファイルを見つけ、そのファイル内の例えば下のような書き換えを行えるようなプログラムはどうつくればいいのでしょうか。 元ファイル ~sample_name1.txt~ aaa, 10 bbb, 20 ccc, 30 ~sample_name2.txt~ aaa, 30 ccc, 12 bbb, 20 ddd, 15 上のように各ファイルにaaaやbbbが共通に含まれています。 対象ファイル:sample_name 対象文字列:aaa 変換後:100 変換後ファイル ~sample_name1.txt~ aaa, 100 bbb, 20 ccc, 30 ~sample_name2.txt~ aaa, 100 ccc, 12 bbb, 20 ddd, 15

  • ファイル中の数行を抜き出す処理について(シェル)

    ファイルaaa.txtの2行目から4行目を抜き出し、 ファイルbbb.txtに格納する方法として、 sed -n '2,4p' aaa.txt > bbb.txt がありますが、 変数を使用し、 start=2 end=4 sed -n '${start},${end}p' aaa.txt > bbb.txt とすると、エラーが発生します。 どうすればよろしいのでしょうか。

  • 秀丸エディタでgrepを行うと前に余計なファイル名と数字が付け加えられる

    grepを行うと、文字の前にファイル名.txtと数字行(****)が付け加えられます 例えば、 aaa bbb をgrepで実行すると .txt(2659):aaa .txt(2660):bbb のようにファイル名と数字行が入ってしまいます。 前につけないように、grepを実行するにはどうすればよいのでしょうか?

  • 行数ごとに検索をかけて並び替えをしたいのですが・・

    数千のファイル名が書かれたテキストファイルがあります。(Aとします。) /yyy/ccc.txt /aaa/aaa.txt /bbb/bbb.txt /sss/aaa.txt /ccc/bbb.txt /zzz/ccc.txt ・ ・ ・ ユニークファイル名だけ書かれたファイルがあります。(Bとします。) aaa.txt bbb.txt ccc.txt ・ ・ ・ Bの行数1行ずつAで検索をかけ、ファイル名を新しいファイル(Cとします)に書き出したいのです。 /aaa/aaa.txt /sss/aaa.txt /bbb/bbb.txt /ccc/bbb.txt /yyy/ccc.txt /zzz/ccc.txt ・ ・ ・ シェルを使ってやりたいのですが、どのようにすればいいのか見当もつきません。 どなたかお分かりのかたいましたら教えてください。よろしくおねがいします。

  • バッチファイルの正規表現を利用した文字列検索

    お世話になっております。 表題の件について、質問させてください。 『とあるファイルに記述されている文字列を一部抜き出して、 別ファイルとして保存する』というバッチファイルを作成していますが、 うまく抜き出すことができないため、ご教示いただければ幸いです。 例) ・filelist.txt .\aaa\aaa.txt .\aaa\bbb.txt 上記ファイルに対し、「.\aaa\aaa.txt」の一行のみ取り出した 「aaafile.txt」というファイルを生成したいと考えております。 現在、私が考えたコマンドは下記になります。 for /f %%A in ('findstr /r /c:"aaa[^\\].*" filelist.txt') do echo %%A > aaafile.txt このコマンドを実行すると、「.\aaa\bbb.txt」まで抽出してしまい、 意図通りとなりません。 初歩的なミスかもしれませんが、 何卒、よろしくお願いいたします。

  • 一行だけ読込

    Perlでのファイルの読込なんですが、 open(IN,"A.txt"); while ($xx = <IN>) { print $xx;} close(IN) とするとA.txtファイルの読込をするんですよね? A.txtの中の一行だけを読込むというのはできるんでしょうか? (10行あったら5行目を読込み、という感じです。)

    • ベストアンサー
    • Perl
  • テキストファイルの一部置換したファイルをたくさん作りたい

    テキストファイル(a.txt)があるのですが このファイルの一部の文字列aaaをbbbに置換したファイル(b.txt)を作りたいです。 また文字列aaaをcccに置換したファイル(c.txt)も作りたいです。 続けてd.txtやe.txt・・・と作っていきたいですが簡単にできるフリーソフトはないでしょうか? 現状はa.txtを開いてaaaをbbbに置換して、別名で保存するのを繰り返し(10回以上)するので大変です。 このようなことが楽にできるフリーソフトがあれば教えてください。

専門家に質問してみよう