c++ - 如何以最好、最简单的方式在文件中搜索?

标签 c++ search file-io

有人能告诉我这是否是一种通过 ID 搜索帐户并输出有关他的所有数据的好方法?如果不是,哪种方法最好?

我有这个:

void account::showacc() {
  ifstream inFile;
  inFile.open("account.dat",ios::binary|ios::in|ios::app);
  int accnum1,n;
  cout<<"Enter account num: ";
  cin>>accnum1;
  n=test();

  for(int i=0;i<n;i++)
  {
    inFile.read((char*)&acc,sizeof(acc));
    if(accnum==accnum1)
    {
      cout<<"account number is: "<<accnum<<endl;
      cout<<"The possesor's name is :"<<name;

    }
  }
  inFile.close();
}

test() 是:

int account::test()
{
  ifstream inFile;
  inFile.open("account.dat",ios::binary|ios::in|ios::app);
  inFile.seekg(0,ios::end);
  int n;
  n=inFile.tellg()/sizeof(acc);
  inFile.close();
  return n;
}

最佳答案

好吧,这可行,但它会很慢......取决于你的文件有多大,以及你的程序运行多长时间(即,如果它是在后台运行的持久程序或某种类型的服务),内存映射文件和/或将整个文件读入 std::stringstream,然后扫描内存中存储的文件会是一个更好的主意。同样,这完全取决于您的文件有多大,以及阅读程序的持久性。如果它是一个巨大的文件,而你的程序只运行一次然后就退出了,那么是的,你现在的方法是可以的。

关于c++ - 如何以最好、最简单的方式在文件中搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962399/

相关文章:

c++ - 实现仅在特定条件下定义的 typedef

c++ - 更改现有派生类的基类

wordpress - 如何在原生 WordPress 搜索的结果中包含作者(用户)?

search - UISearchDisplayController : show all results without entering text?

javascript - 如何检查文件是否存在于 jQuery 或纯 JavaScript 中?

python - 了解netlib fftpack的结果

c++ - Qt/GCC : Returning an object/nullptr from a function by value. 为什么这段代码可以编译?

linux - 如何在Linux中打印搜索文本的行号

Linux 脚本 : mass rename of files with whitespaces

C# 文件 I/O 效率