我的输入文件是这样的:阅读与反斜线()分隔符C++输入文件
C:\Users\DeadCoder\AppData\Local\CoCreate
我做一棵树,我需要抽象目录的名称,而从输入文件与\
分隔符读书。就像在上面的例子中,我需要分别抽象c :,用户,DeadCoder,Appdata ....我希望每个人都能理解这些问题。 现在让我们看看我们得到的选项。
1-
istringstream
适用于whitespace
,但不适用于\
。
2-
strtok()
适用于char。所以我将不得不将我的字符串更改为字符,我真的不想这样做。
3- Boost Tokenizer()
这一个看起来很有趣,过去我对它没有任何的了解,除了我刚刚使用了它之外。我复制的代码,它是这样的:
#include <boost/foreach.hpp>
#include <boost/tokenizer.hpp>
using namespace boost;
int main(){
string tempStr;
ifstream fin;
fin.open("input.txt");
int i=0;
while (!fin.eof()){
getline(fin,tempStr);
char_separator<char> sep("\"); // error: missing terminating " character
tokenizer<char_separator<char>> tokens(tempStr, sep);
for (const auto& t : tokens) {
cout << t << "." << endl;
}
}
现在,这给人的错误"error: boost/foreach.hpp: No such file or directory"
有人可以帮助我在这里。还有没有其他的better way
用\ delimiter
来读取输入文件。请不要使用广泛的代码,如class tokenizer()
,因为我仍在学习C++。
编辑:我没有提高库安装,因此我有这个错误。如果有人能够解释一个更好的方式tokenize
字符串,而不安装第三个库,那将是非常有利的。
Best; DeadCoder。
有你'安装Boost'库? – Mahesh 2013-02-22 17:06:00
没有。那不是默认的。 – DeadCoder 2013-02-22 17:06:53
这是一个第三方库。从http://www.boost.org/下载它 – Mahesh 2013-02-22 17:07:49