【发布时间】:2013-08-03 03:58:46
【问题描述】:
我的代码读取不定数量的整数,一次读取两个:while (cin>>a>>b)。
我希望在输入| 并将其分配给a 或b 时中断循环。
a 和 b 都应声明为 int。然后我会比较:a 或 b ==int('|')
最初将 'a' 和 'b' 定义为 chartype 可以让我避开这个问题,但并不理想。
这是 Stroustrup 的使用 C++ 的原则和实践(第 124 页)中的第 4 章练习。
我想我理解将 | 读入 int 变量试图将 string 转换为 int(不可接受?)。 Stroustrup 说在他的演练中使用这个角色来结束循环,但他没有解释他之前在书中提到它时是如何使用它的。实际上有没有一种方法可以根据需要使用| 字符,只使用本书中讨论的基本代码?非常感谢。
【问题讨论】:
-
字符
|不是一个有效的整数,所以输入会失败并且你的循环会中断。但是,它不会分配给a或b。如果要处理非整数文本,需要读入字符串或字符。 -
不,
|根本不是int。 (也许有一个boost::glyph_cast会返回1。我还没有调查过。) -
所以
|打算作为输入失败以打破循环?哈哈。好吧,尝试整天处理它很有趣。谢谢你们。
标签: c++ string types int type-conversion