【发布时间】:2014-06-26 17:25:53
【问题描述】:
我的程序的目的是读取文件中的单词并计算每个单词的出现次数。代码如下:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<string> v, vdist;
string parola;
int j=0;
ifstream myfile("example.txt");
if (myfile.is_open()) {
cout << "file opened\n";
while (! myfile.eof() ) {
myfile >> parola;
v.push_back(parola);
}
cout << "dimensione file: " << v.size() << endl;
for (int i=0; i< v.size(); i++) {
cout << i << " " << v[i] << endl;
}
sort(v.begin(),v.end());
for (int i=0; i<= v.size()-1; i++) {
if (v[i] != v[i+1]) {
vdist[j] = v[i];
cout << vdist[j] << endl;
j++;
}
vdist[j]= v[v.size()-1];
j++;
}
} else
cout << "file not opened\n";
return 0;
}
我要做的就是创建一个向量vdist,其中包含所有不同的单词,并计算每个单词的出现次数。显然这不是最好的方法,但它只是学习。
产生分段错误的行是这样的:
vdist[j] = v[i];
为什么会这样?
【问题讨论】: