我在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();
答案 0 :(得分:0)
将尽可能多的文件读入内存总是比一次读取一个字母或文本行更有效。磁盘驱动器需要花费大量时间来启动并重新定位到扇区。但是,如果可以最小化文件中的读取次数,程序将运行得更快。
内存搜索速度很快。
我的建议是读取整个文件,或尽可能多地读入内存,然后在内存中搜索&#34; word&#34;。请记住,在英语中,单词可以有连字符,&#39; - &#39;和单引号,&#34;不要&#34;#34;。如果单词识别分成一行或包含缩写(带句点),则单词识别可能会变得更加困难。
祝你好运。