C++での検索と出力について

このQ&Aのポイント
  • C++でのテキストファイルの検索と出力方法について学びたいです。
  • テキストファイル内の特定の文字列を検索し、その前後の行を確認して出力する方法が知りたいです。
  • 具体的な手順として、指定した文字列を検索し、その前後にある行とカラムを確認してエラーメッセージを出力する方法が知りたいです。
回答を見る
  • ベストアンサー

C++での検索と出力について

C++を勉強しています。 今回やりたいのは以下のような作業をしたいです。 例えば... (1)text.txtを読み込む。 (2)ファイル内の『あいうえお』を検索。 (3)次の行と、そこから8カラム分空白を開けた後に『あいうえお』が含まれているかを確認。 (4)続いて『かきくけこ』を検索。 (5)次の行と、そこから8カラム分空白を開けた後に『かきくけこ』が含まれているかを確認。 (6)(3)、(4)と同じ作業を行う。 (7)もし無ければ"出力内容"のようにエラーメッセージを出力。 (8)『はひふへほ』を見つけたら終了。 【テキスト内容例】 ********************あいうえお******************** **あいうえお********あいうえお******************** ********************かきくけこ******************** **かきくけこ********かきくけこ******************** ********************さしすせそ******************** **さささささ********さささささ******************** ********************はひふへほ******************** 【出力内容】 "あいうえお"は合っています。 "かきくけこ"は合っています。 "さしすせそ"は違います。 結構面倒かと思いますが、このような作業を練習も兼ねてやってみたいのです。出来るのか検討が付かなくて。 (1)、(2)までは出来たのですがそこからが出来ないもので。 ぜひ教えていただきたいです。 皆さん教えてください。お願いします。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

現在どこまで出来ているのかを示しましょう … ソースの投稿 行単位の処理でいいのでしょうか それとも文書全体で処理するのでしょうか *****あいう えお********あ いうえお****** といった場合を考慮するのですか この文書はSHIFT-JISでしょうかUnicodeでしょうか これらの不確定要素をどうするのかはっきりさせましょう

SVkatu
質問者

補足

回答ありがとうございます。 今回作成したいのが、文書全体で処理を目指しています。 >*****あいう >えお********あ >いうえお****** >といった場合を考慮するのですか は考慮しません。あくまで"あいうえお"のみ検索したいです。 ソースですが、現時点では... ------------------------------------------------- #include <string> #include <fstream.h> void main() { fstream fs; fs.open("test.txt"); ------------------------------------------------- というところでしょうか。初心者なものであまり先に進めず... (検索のソースは作成は出来るのですが...) 文書は"SHIFT-JIS"です。 続きのソースのアドバイスをいただけたらありがたいです。宜しくお願いします。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

ストリームからの1行入力 その中で検索対象があるかどうかの検査 無ければ 次の行を読み込み 検索に戻る といった手順でしょう 見つかった場合 その見つかった文字列のお尻からもう一度検索 見つからなければ ストリーム入力へ戻って処理 ランタイムライブラリを使ってもいいのか strtokとか 使えないなら 読み取った文字列を自前で検索でしょうね

関連するQ&A

  • VBスクリプトにて検索した文字を出力

    VBSによりコンピュータ名やIPアドレスやプロキシなどの情報を、PC.txtに出力させました。 以下のツールを作りたいのですが、ご教示いただけないでしょうか。 まずC:\PC配下に上記PCx.txtを複数格納しております。(内容はそれぞれのPCのもの) ツール実行後、テキストファイルを一つ一つ読み込み、 "IPアドレス"という検索文字に該当した行をその検索文字列とスペースを省いた値(xxx.xxx.xxx.xxx)を Csvに出力させます。 次に同じように他の出力したい項目を検索していきます。 イメージとして(IPアドレス,, , , ,・・・)とcsvに出力していきます。 次に2個目のテキストファイルを読み、次の行に同じく出力していきます。 最終的にテキストファイル数=CSVの行数となるようにしたいと思います。 ある場所のテキストの文字を検索する、そして必要部分のみCSVに出力するという方法のイメージがつきませんのでご教示頂けますでしょうか。

  • UNIX C ファイル出力

    UNIX Cにてあるテキストファイルの中身(1行分)を、別のテキストファイルに出力したいのですが、どうすれば、いいでしょうか。 例。A.txt 123 yano 200612   ↓ B.txt 123 yano 200612

  • ファイル出力

    GUIでフォームを作り、そのなかにテキストボックスがあります。 そのテキストボックスに書かれた内容を「.txt」に出力したいのですが、出力すると改行が「↑」になり2行以上の文章が、1行になってしまいます。そのまま出力するやり方を教えてください。

  • excel vbaでテキスト出力

    A行=ファイル名 B~D行=テキスト内容 としてテキストファイルを出力したいのですが、やり方を教えていただけないでしょうか? A2から空白にあたるまでテキストを順々に出力したいのですが・・・ よろしくお願いします

  • ファイル処理をしたいのですが...

    C++を使ってファイル処理をしたいと思っています。 処理の内容は、以下の通りです。 (1) ファイルを読み込む (2) そのファイル内のあるキーワードから数カラム後の8カラム分の文字を探す (3) 次の行に移り、(2)の作業を繰り返す (4) あるキーワードが出てきたらその作業を終了 (5) その探した文字を別ファイルに出力する ちょっと分かりづらくてすみません。 初心者なもので。 何か参考になること、テキストやURL等あれば教えていただきたいです。 よろしくお願いします。

  • c++ 入力、出力まわりについて

    Mac OSX 10.7.3です。 c++で書いたプログラムをコンパイルして以下のような数字の集まりを上の行から順に入力したいです。 このプログラムはこの数字列の値により出力をするものとします。 3 3 6 100 2 64 main.cppというコードを使っていて上の数字を保存した input.txtというファイルがあり、output.txtという出力ようのファイルがDesktop下にあります。 ここでターミナルで cd Desktop/ g++ -Wall main.cpp ./a.out < input.txt > output.txt とリターンしてもうまくoutput.txtに出力されません。

  • 検索した文字列がある行を検索するには

    OPEN "A.txt" QWER gohjoij OPEN "B.txt" OPEN "QWERT" Write A.txt jortyu end と書かれたテキストファイル(ファイル名を"ABC.txt"とする。)があるとします。これを 1.OPEN "*.*"(*=ワイルドカード)という文字列の*.*のみに絞る 2."1."の内" "の中に、"."が無い文字列は無視する うえでリッチテキストボックス1に出力するようにします。リッチテキストボックス1には A.txt B.txt と出力されました。これをさらに[A.txt B.txt]がある行全体を、 1.別のリッチテキストボックス(リッチテキストボックス2)に出力する やり方がわかりません。この例だと、リッチテキストボックス2には OPEN "A.txt" OPEN "B.txt" Write A.txt jortyu と出力したいです。今のスキルだと到底作れそうに無いので、どなたか教えてください。

  • 分割して出力する方法

    現在、変数に格納した文字列をテキストに出力しているのですが あまりにも量が多いため、分割して出力したいと考えております。 ex,txt(10000行書き込まれている) → ex1.exe(1000行書き込む) , ex2.txt・・・ というようにex.txtに10000行書き込んでいたものを、ex1、ex2、ex3と分割して出力したいのですが PHPではどのような関数、あるいは手段があるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 同一ファイルからの文字列検索

    お世話になります。 今、ファイル処理を勉強しています。 hoge.txtに文字列が格納されています。 (hoge.txt) --------------------- suzuki yamada kimura tanaka ito suzuki kimura --------------------- hoge.txtの上の行より、下に検索を行い、 一致した場合、printf("HIT\n");と出力します。 動きは、 suzukiを検索文字列し、yamada~kimuraまで検索を行い、 もしヒットした場合、出力表示します。 suzukiが検索終了すると、次のyamadaを検索文字列として、 kimura~kimuraを検索します。 この動作を最後の行まで行えば終了です。 下記のfgets()で1行分を取得してからの 次の行への移行がわかりません。 FILE *fp; char name[256]; if( (fp =fopen( "hoge.txt", "r )) == NULL ){ return 0; } while( fgets(name, sizeof(name), fp ) != NULL ){ //ここで次の行以下とstrstr()で比較を行う } お手数をお掛けしますが、よろしくお願い致します。

  • VB2008 テキストボックス内文字検索と置き換え

    テキストボックスの先頭5文字目から2文字に特定の文字があるか探し出して、特定文字があるならその行の後ろに文字をコピーして置き換え。 検索文字があっても無くても空白行の次の行になったら同様の処理を行う。 こういう処理をするにはどのようにすればいいでしょうか? 例) 特定の文字:ef 置き換えする内容:ef→いーえふ <テキストボックスの内容> abcdefgh ijklmnop qrstuvwx yzABefEF GHYJKLMN OPQRefUV <検索して置き換えた後> abcdefgh いーえふ ijklmnop qrstuvwx yzABefEF GHIJKLMN OPQRefUV いーえふ どなたかご教授ください。 よろしくお願いします。

専門家に質問してみよう