#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
bool isFound(vector<string> v, string word){
for(int i = 0; i < v.size(); i++){
if (v[i] == word) {
return true;
}
}
return false;
}
void printReport(vector<string> words, vector<int> count){
for(int i = 0; i > words.size(); i++){
cout << words[i] << ":" << count[i] << endl;
}
}
int main(){
vector<string> words;
vector<int> count;
string text;
ifstream myFile ("data.txt");
while(myFile >> text){
transform(text.begin(), text.end(), text.begin(), ::tolower);
if(!isFound(words, text)){
words.push_back(text);
count.push_back(1);
} else {
int index = find(words.begin(), words.end(), text) - words.begin();
count[index]++;
}
}
myFile.close();
printReport(words,count);
return 0;
}
正如我在标题中所说,我不知道它有什么问题,当我试图在终端编译它时,它工作正常,但没有输出。
这些是指示:
逐字阅读文本文件。
创建一个单词集合,使你的程序能够区分不同的单词,例如,将每个不同的单词存储在一个向量中。注意,'Our'和'our'应该算作同一个单词,也就是说,你的程序将大小写字母视为相同。
每当一个单词出现时,你的程序就需要计算这个单词在文件中出现的次数。
最后打印一个报告,其中包含每个单词及其在所提供的文本文件中出现的次数。
您只能使用iostream、fstream、string和vector库。
1条答案
按热度按时间qxsslcnc1#
输入
printReport
应该是
这足以解释为什么没有输出,但是您还应该检查文件是否成功打开,这也是一个可能的解释。
正如评论中所说,您越早学习如何使用调试器,以便自己查找像这样的简单错误,效果越好。