C ++のテキストファイルで特定の単語を見つける方法

どのように私はこれを行うだろう:

このdirectorycontents.txtの中にdirectorycontents.txtというテキストファイルがあります。テキストがたくさんあります。それぞれがファイル名の拡張子を持つファイル名です。ファイル名の拡張子が.txtの場合、このようになりたいです。 .png次にfprintf(stderr、 "whateva")を実行します。

私はistreamとfstreamとiostreamを見てきましたが、実際にはこれを行うためにfstreamを使う方法はありませんでした

ありがとう

5
あなたは例を挙げることができますか? '.png .bat'の部分が私を混乱させましたか?
追加された 著者 Kiril Kirov,
私はそれをするために何を探す必要がありますか?
追加された 著者 NoobScratcher,
このディレクトリの中にdirectorycontents.txtというテキストファイルがあります.contents.txtそれぞれのファイルにはファイル名の拡張子が付いています。これらのファイル名には、.txtや.png次にこれを行う:)
追加された 著者 NoobScratcher,
探しているキーワードを開く検索する必要があります。
追加された 著者 Alok Save,
実際に良い本を読んで、入力/出力処理を読んでください。
追加された 著者 Alok Save,
それは本当にC ++でなければなりませんか?スクリプト言語を検討しましたか?
追加された 著者 Matt,

2 答え

さて、私はちょうどあなたを正しい方向に向けるつもりです。私は自分でそれを試す必要があるので、コードを投稿しません。

まず、C ++でファイルを読むことについて読んでください。あなたはそれをGoogleにすることができ、そこにはたくさんの情報があります。たとえば、「C ++でテキストファイルを読み込む方法」を試すことができます。

次に、 ofstreamifstream - これはC ++のやり方です。

Then parse the file - you can read it word by word (using istream::operator>> ) , line by line (for example with getline ) into std::string (as you're talking about file names).

そして、入力を分析する - 解析されたファイルを分析し、その中の特定の単語を検索します。例えば、 std :: string見つける - これはあなたの問題のために十分であると思います:)

私はそれが助けて欲しいここではコードを書いていないことに注意してください。問題の解決策を見つけるのに役立ちます。

3
追加された
非常に丁寧で有益な答えです。 +1
追加された 著者 Didier Trosset,
@NoobScratcher:あなたが "読む方法を知らない"場合、おそらくあなたはこれを最初に習得しようとするべきです。 ;-)
追加された 著者 Didier Trosset,
誰もあなたのためにあなたの問題を解決することはありません。誰もあなたのためにコードを書くことはありません。本を手に入れるか、どこかに尋ねる。あなたが書こうとしたコードを(他の質問で)投稿した場合は、私たちが手助けすることができます。そうでなければ - そうではない。
追加された 著者 Kiril Kirov,
@NoobScratcher - あなたは間違った場所にいます、ごめんなさい。
追加された 著者 Kiril Kirov,
私はコードが必要です。私の問題は私がドキュメントを読んで、それが動作していないか、奇妙で奇妙でなければ何を求めているのか分からず、私の顔の前にあるべきときに、私もそれを理解し、よく説明しました
追加された 著者 NoobScratcher,
それは私が一人の機能のためにすべてをやりたいと思って問題をthatsそしてそのより多くの努力と私は悪い感情を嫌う後に来るすべての他の機能のために
追加された 著者 NoobScratcher,

このようなものについては、 std :: fstreams を見てください。あなたがしようとしていることのあなたのあいまいな記述に基づいて、あなたはこの単純なプログラムを出発点として使うことができます:

#include 
#include 
#include 
using namespace std;

void doSomething();
int main(int argc, char *argv[])
{
  if(argc < 2)
  {
    cout << "Usage: findsomething [filename]" << endl;
    return 1;
  }

  ifstream infile(argv[1], ifstream::in);
  if(!infile.is_open())
  {
    cout << "Couldn't open file " << argv[1] << endl;
    return 1;
  }

  string line;
  while(getline(infile, line))
  {
    if(line.find(".txt") != string::npos ||
       line.find(".png") != string::npos ||
       line.find(".bat") != string::npos)
    {
      doSomething();
    }
  }
}

うまくいけば、それはあなたを始めさせるのに十分なコードであり、読むのが難しいことではありません。

0
追加された
Psst、しないでください、してください。
追加された 著者 Kiril Kirov,