微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C读取txt的随机行?

我正在运行C代码,我需要从txt文件导入数据.
文本文件包含10,000行.每行包含n列二进制数据.

代码必须循环100,000次,每次必须从txt文件随机选择一行,并将列中的二进制值分配给某些变量.

编写此代码的最有效方法是什么?我应该先将文件加载到内存中,还是应该随机打开一个随机行号?

我怎样才能在C中实现它?

解决方法

随机访问文本文件中的行,所有行都需要具有相同的字节长度.如果你没有,你需要循环,直到你得到正确的行.由于这对于如此多的访问来说会非常慢,所以最好将它加载到std :: strings的std :: strings中,每个条目都是一行(这很容易用std :: getline完成).或者既然你想从不同的列中分配值,你可以使用std :: vector和你自己的struct
struct MyValues{
  double d;
  int i;
  // whatever you have / need
};

std::vector<MyValues> vec;

哪个可能更好,而不是一直解析该行.

使用std :: vector,您可以获得随机访问权限,只需在整个文件中循环一次.

原文地址:https://www.jb51.cc/c/119043.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐