2016-10-18 5 views
-2

私はC++には新しく、プログラムに問題があります。私はファイルを検索して、大文字26文字(A、B、C ...)と小文字(a、b、c、d ...)のすべてを最初に見つけようとしています。私はコードを使って作業しており、ファイルを取り出してベクトルに作成し、ベクトルを通って各文字の最初のインスタンスを見つけるのが最も簡単だと考えました。ここに私のコードの例があります。テキストファイルから手紙を探す

int main() 
{ 
    int i; 
    string file = input; // User inputted file 
    vector<string> v; 
    ifstream ist{ file }; 
    if (!ist) 
     error("Can not open inputed file ", file); 
    while (!ist.eof()) 
    { 
     string x; 
     ist >> x; 
     v.push_back(x); // Creates a string vector that is filled with everything 
     // in the file 
    } 
    // Find A in text. 
    vector<int> location; 
    location = find(v.begin(), v.end(), 'A'); 
    if (location != v.end()) 
     cout << "Found A at location " << location; 
    else 
cout << "A was not found" 

私は正常にベクトルvを取得することができ、それはファイルが内部にあったもので満たされました。問題の領域は、文字列ベクトルから文字の位置を取得する方法です。私はまだC + +にする必要があるので、私はすべての問題に近づいている可能性があります。あなたが私を助けることができれば、それは素晴らしいだろう。ありがとう。

+1

で読み取り

メイクV vector<char>とは、このような問題を解決するための適切なツールは、あなたのデバッガであるあなたの全体のコード – amanuel2

+2

を投稿してください。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –

+1

@πάνταῥεῖ:ここにある正しいツールは、優れた入門書です[http://stackoverflow.com/q/388242/1889329]。 'ベクトル'を* "文字の並び" *とすると、実際には基本を真っ直ぐにする必要があります。デバッガはこの時点では助けにならないでしょう。 – IInspectable

答えて

0

あなたのベクトルvには、手紙を探している間、ファイルからのすべての文字列が含まれています。 1つの文字