C++ c++;txt到矢量故障
无法将文本文件(.txt)读取/获取到vector,尝试了web上的3种方法(编号为0-1-2)。到目前为止得到了单词数(距离算法),文件大小(不包括代码),但没有矢量。请指出我的错误。多谢各位C++ c++;txt到矢量故障,c++,vector,iterator,C++,Vector,Iterator,无法将文本文件(.txt)读取/获取到vector,尝试了web上的3种方法(编号为0-1-2)。到目前为止得到了单词数(距离算法),文件大小(不包括代码),但没有矢量。请指出我的错误。多谢各位 #include <iostream> #include <vector> #include <fstream> #include <sstream> #include <string> #include <algorithm> #
#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
void intoVector (ifstream &stream, vector<string> &vector) {
string s;
getline (stream, s);
istringstream iss (s);
copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(vector));
}
int main(int argc, const char * argv[]) {
string s1="text.txt";
ifstream file (s1);
if (!file) {
cout<<"Couldn't find file"<<endl; exit(1);
}else {cout<<"File is found"<<endl;}
//words count - o.k.
istream_iterator<string> start(file), end;
cout<<"Word count: "<<distance(start, end)<<endl;//iterator distance - difference beteween 2 iterators, type ptrdiff_t
if (!file.is_open()) {
cout<<"File isn't open"<<endl;
}
//0)try
vector<string> vec1;
intoVector(file, vec1);
cout<<vec1.size()<<endl; //result- 0
//1) try1
vector<string> text1(start, end);
cout<<"Vector size "<<text1.size()<<endl; //result - 1, 1st word
copy(text1.begin(), text1.end(), ostream_iterator<string>(cout, " "));
//2)try2
vector<string> vec2;
string s2;
while (getline(file, s2)) {
vec2.push_back(s2);
}
cout<<"vec size "<<vec2.size()<<endl; //Result -0
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
void intoVector(ifstream&stream、vector&vector){
字符串s;
(溪流,s);;
istringstream iss(s);
复制(istream_迭代器(iss)、istream_迭代器()、back_插入器(向量));
}
int main(int argc,const char*argv[]{
字符串s1=“text.txt”;
ifstream文件(s1);
如果(!文件){
cout当我禁用ifstream_迭代器(距离算法)时,所有的方法都能工作。以前必须将文件大小计算作为一个函数(在main之外)进行,因为它与前面提到的迭代器相冲突寻求调试帮助的问题(“此代码为什么不能工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。我的问题。需要逐行获取文本(字符串到向量)或找到逐字迭代文本的方法(为了得到某个数字的字[索引])。当我禁用ifstream_迭代器(距离算法)时,所有方法都有效。以前必须将文件大小计算作为一个函数(在main之外),因为它与提到的迭代器冲突。