• ベストアンサー

どなたか、教えて下さい(C言語)

noname#48699の回答

noname#48699
noname#48699
回答No.5

「C言語の勉強は始めたばかりで」とのことで・・参考になれば。 インデント、タブが消えてしまって見づらくて申し訳ない・・・(私なりのこだわりがあるのですが、残念) (なお、DOS窓では2コマンド(COPY,SORT)でできちゃう・・・) (それをいっちぁお終いかな・・なにかと楽したい中高年) ・要は、ブァッファに読み込んだものが、どんな条件でも出力前に上書き読み込みされないように・・ということかな。 ・アルゴリズムは趣味の世界ともいえる。 #include <stdio.h> #include <stdlib.h> #include <string.h> #define A_END 0x01 #define B_END 0x10 #define ALL_END 0x11 void main() { int iHappyEnd = 0x00, iWork, iSw; char cBufA[1024], cBufB[1024]; FILE *fpA, *fp2, *fpB; fpA = fopen( "nyuryokuA.txt", "r" ); fp2 = fopen( "NewData.txt", "w" ); fpB = fopen( "nyuryokuB.txt", "r" ); if( fpA == NULL ){ fprintf( stderr, "nyuryokuA.txt が有りません" ); exit( 0 ); } if( fpB == NULL ){ fprintf( stderr, "nyuryokuB.txt が有りません" ); exit( 0 ); } fgets( cBufA, 1023, fpA ); // 先行読み込み fgets( cBufB, 1023, fpB ); while( ALL_END != iHappyEnd ){ // 2ファイル共に終了まで if( A_END == iHappyEnd ){ // Aファイルデータ無し fprintf( fp2, "%s", cBufB ); // ファイルに出力 fprintf( stderr, "%s", cBufB ); // 標準出力 if( NULL == fgets( cBufB, 1023, fpB ) ) iHappyEnd |= B_END; continue; } if( B_END == iHappyEnd ){ // Bファイルデータ無し fprintf( fp2, "%s", cBufA ); // ファイルに出力 fprintf( stderr, "%s", cBufA ); // 標準出力 if( NULL == fgets( cBufA, 1023, fpA ) ) iHappyEnd |= A_END; continue; } iSw = strcmp( cBufA, cBufB ); // マージ作業 if( iSw < 0 ){ // A < B fprintf( fp2, "%s", cBufA ); // ファイルに出力 fprintf( stderr, "%s", cBufA ); // 標準出力 if( NULL == fgets( cBufA, 1023, fpA ) ) iHappyEnd |= A_END; continue; } if( iSw > 0 ){ // A > B fprintf( fp2, "%s", cBufB ); // ファイルに出力 fprintf( stderr, "%s", cBufB ); // 標準出力 if( NULL == fgets( cBufB, 1023, fpB ) ) iHappyEnd |= B_END; continue; } fprintf( fp2, "%s", cBufA ); // ファイルに出力 fprintf( stderr, "%s", cBufA ); // 標準出力 fprintf( fp2, "%s", cBufB ); // ファイルに出力 fprintf( stderr, "%s", cBufB ); // 標準出力 if( NULL == fgets( cBufA, 1023, fpA ) ) iHappyEnd |= A_END; // 先行読み込み if( NULL == fgets( cBufB, 1023, fpB ) ) iHappyEnd |= B_END; } fcloseall(); }

関連するQ&A

  • C言語

    今、独学でC言語を勉強しているんですが。 大きく、 条件処理、繰り返し処理、配列、関数、2次元配列、文字列、構造体、ファイル処理、乱数、検索、バブル・ソート、ポインタ まではやったんですが(参考書で勉強)。 その次になにを勉強したらよく分からないので、 何を勉強するべきか教えてください。 将来的にこれっと言った作りたいものは決めていません。 お願いします。

  • C言語における乱数と標本分布について

    標準正規乱数と自由度3のカイ2乗分布からt分布を作りたいのですが、よろしくお願いします。 (標本数は10万で、各乱数はテキストファイルに読み込み、テキストファイルに出力します)

  • C言語で地図を描きたい

    C言語で、地図を描くプログラムを作ろうと考えていますが、 どなたか参考になりそうなソースや文献などご存知でしょうか。 東京湾などの形状を描くつもりですが、将来的に 詳細/広域切り替え機能も必要になります。 海岸線を正確に描くためには、 画面外にある地形座標とも線を繋ぐ必要がありますが これをどう処理しようか考えあぐねています。 標準出力にXY座標を与えて線を描く関数や、 緯度経度をXY座標に変換する関数は用意しています。

  • c言語:ファイルの入出力

    2つの行列をファイルから読み込み、その積をファイルに出力するプログラムを 作りたいのですが、参考書を読んでもよくわからないので教えて頂きたいです。 テキストファイルの文字列のコピーなどは、参考書を見てできたのですが、 ファイル入出力を使った数値の計算がいまいち理解できませんでした。 注意点は以下の通りです。 ・ファイルはカンマ区切りのテキストファイルとし、入力ファイルはエクセルで作成。拡張子は.csv。 ・ファイル名はキーボードから入力できるようにする。 よろしくお願いします。

  • 「INT86(・・・・・・);」 って何でしょう?(C言語)

    C言語のソースをみていると、その中に INT86(); という関数が出てきました。 しかし、ソースのどこを見ても その関数が定義されているところがありません。 ほかにIncludeされているファイルは Windows標準のヘッダーファイルだけでした。 そこで質問なのですが、 この「INT86()」というのは標準の関数なのでしょうか? ご回答お願いいたします。

  • WindowsXpProでC言語でCGI

    自宅のXp Proをサーバーにして,Apache2.2やメールサーバを動作させています。昨日,Apacheでssiやcgiを実行可能にして,次のような簡単なプログラムをコンパイルして,hello.exeを作って,試してみました。 #include <stdio.h> #include <conio.h> int main() { printf("Hello"); /*getch();*/ } htmlファイルは, <!--#exec cgi="counter.exe" --> <!--#include file="count.dat" --> <!--#exec cgi="hello.exe" --> としています。実は,counter.exeは自作カウンターなのですが,標準出力が表示されず,しかたなく,#includeでカウンタファイルの値を表示させています。hello.exeも同様にファイルに書き出して,includeすれば大丈夫なのでしょうが,いろいろな資料やhpを見る限り,上記ソースのように標準出力でできるはずだと思うのです・・・。 Windowsをサーバにした場合は,標準出力は表示されないのでしょうか? どなたか,アドバイスいただけないでしょうか。

    • ベストアンサー
    • CGI
  • C言語の四則演算

    C言語で次のようなプログラムを作りたいのですが ソースを教えていただけないでしょうか? 四則演算のみの計算式を標準入力から受け取り計算式の通りに計算を行い計算式と答えを標準出力に出力する どなたか教えてください

  • アセンブリ言語とC言語について。

    以下のURLで、 https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al … No.14のC 言語の write の仕様そのもので、第一引数はファイルディスクリプタですね。 (ファイルディスクリプタについては御自身で調べてみてください) 固定値として定義されているのは、標準ストリーム ファイルの  0 … 標準入力 (write では使われない)  1 … 標準出力  2 … 標準エラー出力 です。(3 以降は各プロセスでオープンされたファイルやソケットやデバイスを 指しており、固定値ではなくプロセス毎に異なる値となります。) 括弧の所がよくわかりません。教えていただけると幸いです。すみません。

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

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

  • C言語につて、教えてください!!

    C言語について教えてください テキストファイル CD_DATA|45 DVD_DATA|601 MD_DATA|24 メイン関数と読み込み関数で、テキストファイルの'|'より後ろを構造体に書き込み エラー処理でテキストファイルに'|'が無い時エラーメッセージをだす。 テキストファイルの中の行数が違った時エラーメッセージをだす。 以上です、教えてくださいお願いします。