如何从C ++中的txt文件的随机位置读取数据

时间:2019-01-26 06:40:43

标签: c++ fstream

我正在为用C ++编写的游戏编写排名系统,并希望从文件的随机位置读取单词。

例如,如果文件的最后两行是:

fun chooseTeam() {
    val homeTeam = Team(name = "Everton")
    val adjective = if (homeTeam.aggressive) "angry" else "timid"

    println("the home team is ${homeTeam.name} so they are $adjective")
}

我读了1300,怎么回去读1902?

1 个答案:

答案 0 :(得分:0)

从文件中读取信息时;连续多次打开和关闭它的过程并不是一个好的代码设计。就CPU周期而言,与从ram或缓存中进行访问相比,从硬盘驱动器访问文件等缓存被认为比较慢。因此,我对您的建议与上述评论中的David C. Rankin相同。

  

将所有文件信息读入一个大的单个字符串缓冲区或一个字符串向量中,其中该向量中的每个字符串都是该文件中的一行文本。在读取所有内容并对其进行处理之后,请关闭文件。

     

这使它可以一次性查找文件,打开文件和读取访问文件。

     

此后,就是要解析您的字符串或字符串向量,这要快得多,因为这些容器已经在应用程序正在运行的内存中,因为它们是同一进程或运行线程的一部分。