我的输入文件是这样的:
C:\Users\DeadCoder\AppData\Local\CoCreate
我正在制作一棵树,我需要在从带有\
分隔符的输入文件中读取时抽象目录的名称。和上面的例子一样,我需要分别抽象出c:、users、DeadCoder、Appdata ....希望大家理解问题。现在让我们看看我们得到的选项。
1-
istringstream
适用于whitespace
但不适用于\
.
2-
strtok()
在 char 上工作。所以我必须将我的字符串更改为 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++ 那样使用大量代码。
编辑:我没有安装 boost 库,因此我遇到了这个错误。如果有人可以在tokenize
不安装第三个库的情况下解释一种更好的字符串方式,那将是非常受欢迎的。
最好的; 死编码器。