在std :: getline()上使用任何字符作为分隔符

时间:2017-08-13 22:37:25

标签: c++ stdout stdin getline

我试图从存储到字符串中的文件开始计算行开头的空格' '。 问题是,当找到与std::getline()不同的任何字符时,我不知道如何告诉' '停止。

std::getline(file_input, string_target, 'Any_character_except_space');

1 个答案:

答案 0 :(得分:1)

您不能将除空格之外的任何字符用作std::getline()的分隔符,所有签名都不允许这样做。

你可以做的是例如:

std::string line;
std::getline(file_input,line);
auto pos = std::find_if_not(std::begin(line),std::end(line),[](char c) {
        return std::isspace(c);
     // or c == ' '
     // or whatever condition you need
    } );
size_t space_count = std::distance(std::begin(line),pos);

这里是full example