我正在编写一个程序,我使用 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);
}
这是程序读取的文本文件:
程序运行良好,但我想做的是忽略每一行中的所有内容,除了中间的十六进制字符串。所以换句话说,忽略第一个下划线之前和第二个下划线(包括下划线)之后的所有内容。有没有简单的方法可以做到这一点?在读取文件时或之后将行存储在 vector 中时忽略文本更好吗?谢谢。
最佳答案
有一些方法可以在分隔符上拆分字符串,这意味着您可以在 '_'
字符上拆分字符串,并且只使用中间部分。
一个简单的方法是使用 std::getline
和 std::istringstream
:
while (getline(flirfile, flir_line))
{
std::istringstream is{flir_line};
std::string dummy;
std::string flir;
std::getline(is, dummy, '_');
std::getline(is, flir, '_');
flir_times.push_back(flir);
}
关于c++在读取文件之前或之后忽略字符串部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578197/