1

我在 Code Review Beta 上发布了这个,但注意到那里的活动要少得多。

我有以下代码,它工作得很好。它的功能是从文件中获取输入并将其显示出来(以确认它已被抓取)。我的任务是编写一个程序,计算在输入文件中找到某个单词(字符串)“abc”的次数。

将输入存储为字符串还是数组/向量并单独存储每一行​​是否更好?a[1]、a[2] 等?也许有人还可以向我指出一个资源,我可以使用它来学习如何过滤输入数据。

谢谢。

input_file.open ("in.dat");
while(!input_file.eof()) // Inputs all the lines until the end of file (eof).
{
    getline(input_file,STRING); // Saves the input_file in STRING.
    cout<<STRING; // Prints our STRING.
}
input_file.close();
4

1 回答 1

0

将尽可能多的文件读入内存总是比一次读一个字母或文本行更有效。磁盘驱动器需要很长时间才能启动并重新定位到一个扇区。但是,如果您可以最大限度地减少从文件中读取的次数,您的程序将运行得更快。

内存搜索速度很快。

我的建议是读取整个文件,或者尽可能多地读入内存,然后在内存中搜索“单词”。请记住,在英语中,单词可以有连字符“-”和单引号“don't”。如果单词被分割成一行或包含缩写(带句点),单词识别可能会变得更加困难。

祝你好运。

于 2013-02-25T06:41:05.233 回答