21xrx.com
2024-06-02 23:19:13 Sunday
登录
文章检索 我的文章 写文章
C++ 如何实现输入整数时用逗号隔开?
2023-07-13 08:30:07 深夜i     --     --
C++ 输入 整数 逗号隔开

C++中实现输入整数时用逗号隔开可以通过对输入流进行重载来实现。下面是一个简单的代码示例:


#include <iostream>

#include <locale>

// 重载流运算符,将逗号转化为空格

std::istream& operator>>(std::istream& is, int& num) {

  // 获取当前的本地化对象

  std::locale loc = is.getloc();

  // 获取千位分隔符字符

  char sep = std::use_facet<std::numpunct<char>>(loc).thousands_sep();

  

  // 循环读取输入流中的字符,如果是逗号替换为空格

  char ch;

  int res = 0;

  while (is.get(ch)) {

    if (ch == sep)

      continue;

    

    if (ch < '0' || ch > '9') {

      is.putback(ch);

      break;

    }

    res = res * 10 + (ch - '0');

  }

  num = res;

  return is;

}

int main()

  int a

在上述代码中,我们通过重载`operator>>`函数来实现输入整数时用逗号隔开。我们首先获取当前输入流的本地化对象和千位分隔符字符。然后循环读取输入流中的字符,如果是逗号则跳过,如果是非数字字符则将其放回输入流之中。最后将累加的数字存储到`num`变量中,并返回输入流以便于下一次读取。

在`main()`函数中,我们设置了`std::noskipws`标志来禁止跳过空格字符。然后通过重载的`operator>>`函数来实现输入整数时用逗号隔开。最后输出三个整数,其中由逗号隔开。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复