0

OK、C ++は初めてですが、たくさんの練習をしています。

これが私の問題です。誰かが私のソースコードを見て、ここで正しい方向に私を導いてください。

これが私がやろうとしていることです。

  1. プログラムは、レコードを含むテキスト ファイルを読み取ることができる必要があります。(DID THAT)
  2. また、テキスト ファイル内の文字列を使用してレコードを検索したい (これを行っていない)
  3. また、テキスト ファイル内の 10 進数または double を使用して、レコードを最大から最小に並べ替えます。バブルソート機能を使おうと思いました。

これが私のコードです

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

//double gpa;
//string

int main () 
 {
  string line;
  ifstream myfile ("testfile.txt");
  if (myfile.is_open())
 {
    while ( myfile.good() )
 {
      getline (myfile,line);
      cout << line << endl;

 }
    myfile.close();
 }

else cout << "Unable to open file"; 

char c;
cout<<"\n enter a character and enter to exit: ";
cin>>c;
return 0;
}

以下は、レコードを含むテキスト ファイルの例です。

aRecord 90 90 90 90 22.5
bRecord 96 90 90 90 23.9
cRecord 87 90 100 100 19.9
dRecord 100 100 100 100 25.5
eRecord 67 34 78 32 45 13.5
fRecord 54 45 65 75 34 9.84
gRecord 110 75 43 65 18.56
4

1 に答える 1

1

失敗する可能性があるため、その場合にgetline(myfile, line)値を使用するのは正しくないことに注意してください。line

while (myfile.good())
{
    getline(myfile, line);
    cout << line << endl;
}

次のようにする必要があります。

while (getline(myfile, line))
{
    cout << line << endl;
}

質問 2 と 3 に対して: 助けを求める前に、自分で何かを試してみてください。解決策や試みでさえない場合は、少なくともそれについていくつかのアイデアを持っている必要があります. テキスト ファイルからデータを取得するたびに、テキスト ファイルを調べますか? 一度に読み取ってメモリに保存する方がよいのではないでしょうか (おそらくstd::vector<Record>、レコードのベクトルでレコードを検索します)。ファイルを 1 行ずつ調べて、各行内の特定の文字列を検索しますか?... もっと考えてみれば、疑問に対する答えが見つかります。

于 2012-10-09T23:24:29.490 に答える