我正在编写一个程序,我使用getline()
读取文本文件并将每行存储在vector<string>
中。
ifstream flirfile(flir_time_dir);
vector<string> flir_times;
string flir_line;
while (getline(flirfile, flir_line))
{
flir_times.push_back(flir_line);
}
这是程序读取的文本文件:
该程序运行正常,但我想要做的是忽略每行上的所有内容,除了中间的十六进制字符串。换句话说,忽略第一个下划线之前和第二个下划线之后的所有内容(包括下划线)。有一个简单的方法吗?并且在文件被读取时或之后当行存储在向量中时忽略文本是否更好?感谢。
答案 0 :(得分:4)
答案 1 :(得分:3)
如果您的编译器支持C ++ 11,您可以使用regular expression:
#include <regex>
// ...
std::regex my_regex("_[^_]*_");
while (getline(flirfile, flir_line))
{
std::smatch my_match;
if (std::regex_search(flir_line, my_match, my_regex))
flir_times.push_back(my_match[0]);
}