【问题标题】:Can c++ input separator be changed from space to dot?c++ 输入分隔符可以从空格更改为点吗?
【发布时间】:2015-04-22 01:22:33
【问题描述】:

确切地说,我想编写一个程序来将 IP 地址转换为其二进制格式,如 202.117.1.20。那么有没有一种方法可以使输入以点分隔,以便我可以将 202 读取为 int 而不是字符串? 修改:为什么输入流用空格分隔,我可以把它改成点,或者我喜欢的任何字符吗?

【问题讨论】:

标签: c++ cin


【解决方案1】:

显而易见的可能性是:

unsigned o1, o2, o3, o4;

char dot1, dot2, dot3;

infile >> o1 >> dot1 >> o2 >> dot2 >> o3 >> dot3 >> o4;

assert(dot1=='.' && dot2=='.' && dot3=='.');
assert(o1 < 256 && o2 < 256 && o3 < 256 && o4 < 256);

如果您真的不想显式读取. 字符,您可以创建一个将. 分类为空格的ctype facet,然后使用该facet 创建一个区域设置,并使用该区域设置填充流。

如果您需要编写大量忽略输入中的. 的代码,这可能是值得的。我在another answer 中发布了这样一个方面。在这里您可以使用它,但请阅读 ints(或 unsigned 等)而不是字符串。

【讨论】:

    猜你喜欢
    • 2014-01-10
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多