2012-04-23 85 views
0

私はC++にかなり関心があり、1000の最も一般的な単語を文字列配列に格納する必要がある最近の宿題があります。私はこれについてどうやって行くのだろうと思っていた。ここに私のコード例があります。C++の文字列配列に変数を格納する方法

if(infile.good() && outfile.good()) 
    { 
     //save 1000 common words to a string 

     for (int i=0; i<1000; i++) 
     { 
      totalWordsIn1000MostCommon++; 
      break; 
     } 

     while (infile.good()) 
     { 
      string commonWords[1000]; 
      infile >> commonWords; 
     } 
    } 

ありがとう!

+3

私はこれをダウン投票していませんが、これまでのサンプルコードでは十分な努力が実証されていません。問題の一般的なアプローチを考えましたか?あなたはどのように単語を数えることを計画していますか? – dasblinkenlight

+0

どのように「最も一般的な言葉」を特定していますか?あなたはすべての単語を読みたいと思うように聞こえますが、再現する単語を数え、最高の数でソートし、ソートされたコレクションの最初の1000個を 'std :: vector 'にプッシュしてください... – AJG85

答えて

0
#include <cstdio> 
    #include <string> 

    freopen(inputfileName,"r",stdin); 
    const int words = 1000; 
    string myArr[words]; 
    for(int i=0;i<words;i++){ 
     string line; 
     getline(cin,line); 
     myArr[i] = line;  
    } 
+4

なぜ地球上であなたはファイルストリームを開くのではなく 'cin'をハイジャックしますか? –

+0

それをやるだけのやり方です。 –

+0

@AbhishekIyer、いいえ、それをやっている "派手な"方法ではありません - それはそれを行うの完全に冗長な方法です... – Nim

0

forループは最初は何も実行せず、最初の繰り返しで途切れます。 C++でループを使用する方法をお読みになる方が良いでしょう。また、C++の変数のスコープを見てください。あなたのケースでは、whileループで宣言されたcommonWordsは、毎回作成され、各ループ反復後に破棄されます。

int i = 0; 
std::string commonWords[1000]; 
while (i < 1000 && infile.good()) { 
    infile >> commonWords[i]; 
    ++i; 
} 

私はあなたがあなたの宿題を完了するために、残りの部分を生きている: 何が欲しいのはこのようなものです。

+0

ありがとう、私はC + +でループを見て回ります。助けてくれてありがとう。 – Matt

関連する問題