从文本文件中读取记录

时间:2012-10-09 22:58:26

标签: c++ search text

好的,我是c ++的新手,但我正在做很多练习。

这是我的问题,有人可以查看我的源代码,并请指导我在正确的方向。

这就是我想要做的。

  1. 程序应该能够读取包含记录的文本文件 在它。(DID THAT)
  2. 我还想在文本文件中使用字符串搜索记录 (还没有这样做)
  3. 此外,使用小数将记录从最高到最低排序 文本文件中的数字或双精度数。我想到了使用冒泡排序 功能
  4. 这是我的代码

    #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;
    }
    

    以下是包含记录的exmaple文本文件。

    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
    

1 个答案:

答案 0 :(得分: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>然后在记录向量中搜索记录)?你想逐行浏览你的文件并在每行中搜索一些特定的字符串吗?...只要想一想就可以找到问题的答案。