我想处理文件的每一行,然后用分隔符将其分割,并获得例如第一个和第三个标记。
在python中,
with open("filename.txt") as f:
for line in f:
tokens = line.split("|")
print(tokens[0], tokens[2])
所以,cpp,我可以用getline
读取文件的行。像这样:
ifstream fin(f);
string myStr;
while( getline(fin, myStr)){
}
现在,如何用|
拆分myStr并获得代币?我再次尝试在while循环中调用getline(myStr, token, '|')
,但似乎不起作用。有人能帮忙吗?
感谢
更新:只需要前三到四个代币
在你的while循环中试试这个:
size_t pos = 0;
vector<std::string> tokens;
while ((pos = myStr.find("|")) != std::string::npos) {
tokens.push_back(myStr.substr(0, pos));
myStr.erase(0, pos + delimiter.length());
if(tokens.size() == 4){
break;
}
}
tokens.push_back(myStr)
并在while循环外部和之前初始化tokens
:
vector<int> tokens;
此问题答案的修改版本:使用字符串分隔符(标准C++(在C++中分析(拆分(字符串