首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取标准C++中用逗号分隔的两个数字的标准输入?

如何读取标准C++中用逗号分隔的两个数字的标准输入?
EN

Stack Overflow用户
提问于 2013-12-20 01:29:36
回答 1查看 741关注 0票数 1

我必须使用标准的C++库(没有boost)读取用逗号分隔的两个数字的标准输入。因此用户将在控制台中以以下格式键入数字,

示例

2, 3 ,10

如果是C,我可以做scanf("%d,%d",i,j);我怎么在C++中做呢?cin默认使用空格作为分隔符,如何更改cin的分隔符?

EN

回答 1

Stack Overflow用户

发布于 2013-12-20 01:36:06

我将使用的方法是使用自定义的comma操纵器:

代码语言:javascript
复制
std::istream& comma(std::istream& in) {
    std::istream::sentry cerberos(in);
    if (cerberos) {
        if (in.peek() == ',') {
            in.ignore();
        }
        else {
            in.setstate(std::ios_base::failbit);
        }
    }
    return in;
}

然后,您可以在应该读取逗号的位置插入comma,例如:

代码语言:javascript
复制
int i, j;
if (in >> i >> comma >> j) {
    // process the data
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20688037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档