首页 > 后端开发 > C++ > 如何更改 C 中'cin”输入的分隔符?

如何更改 C 中'cin”输入的分隔符?

Linda Hamilton
发布: 2024-12-05 16:39:12
原创
828 人浏览过

How Can I Change the Delimiter for `cin` Input in C  ?

修改 C 中 'cin' 输入的分隔符

在 C 中使用输入流时,通常使用 'cin' 读取用户输入。默认情况下,“cin”将空白字符视为分隔符,分隔单词或标记。如果您需要使用不同的分隔符怎么办?

虽然 C 标准库 API 没有明确提供更改“cin”分隔符的方法,但可以使用“std::”来实现此目的ios_base::imbue' 函数。

'std::ios_base::imbue' 允许您向输入添加自定义 'ctype' 方面 溪流。 Ctype 分面定义给定语言环境的字符分类行为。

以下示例演示了如何将分隔符更改为冒号(':')字符:

#include <locale>
#include <iostream>

struct colon_is_space : std::ctype<char> {
  colon_is_space() : std::ctype<char>(get_table()) {}
  static mask const* get_table()
  {
    static mask rc[table_size];
    rc[':'] = std::ctype_base::space;
    rc['\n'] = std::ctype_base::space;
    return &amp;rc[0];
  }
};

int main() {
  using std::string;
  using std::cin;
  using std::locale;

  cin.imbue(locale(cin.getloc(), new colon_is_space));

  string word;
  while(cin >> word) {
    std::cout << word << "\n";
  }
}
登录后复制

在此示例中,创建了一个自定义“ctype”构面“colon_is_space”。此方面将冒号 (':') 和换行符 ('n') 字符分类为空格。

通过使用此自定义方面向输入流注入语言环境,我们有效地将 'cin' 的分隔符更改为冒号。因此,当使用提取运算符 (>>) 读取输入时,它将把冒号视为分隔符。

此技术可用于处理使用非空白字符作为分隔符的输入格式.

以上是如何更改 C 中'cin”输入的分隔符?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板