检测字符串流结束时的时间

时间:2013-12-13 17:13:45

标签: c++ string stringstream

我正在尝试编写一个函数,它将检测我何时几乎在字符串流的末尾,但它似乎不起作用。

以下是一些代码:

std::string path(1.2.3);
int number;
std::stringstream ss(path);
while (!ss.eof()) {
    if (ss.peek() != '.') {
        ss >> number;
        if (ss.tellg() == path.length()) {
            std::cout << "Last one: " << number;
        } else {
            std::cout << number;
        }
    } else { ss.get(); }
}

我尝试使用ss.tellg()== path.length(),但这不起作用。有人有其他选择吗?

1 个答案:

答案 0 :(得分:14)

我想出来了..

std::string path(1.2.3);
int number;
std::stringstream ss(path);
while (!ss.eof()) {
    if (ss.peek() != '.') {
        ss >> number;
        if (ss.tellg() == -1) {
            std::cout << "Last one: " << number;
        } else {
            std::cout << number;
        }
    } else { ss.get(); }
}