【发布时间】:2017-01-01 07:03:39
【问题描述】:
我在 SO 上看到了有关验证输入格式的其他问题,但是我正在为我遇到的问题寻找更具体的答案。
目前,我需要读取 2 个整数值并将它们存储为坐标。我用过:
cin >> x >> y
这将读取由空格分隔的 x 和 y 的值。
但是,除了 a 之外的任何输入
int whitepsaceint
会破坏我的程序。我试图验证输入以确保每个值都是整数,但它仅适用于第一个整数输入。
我还需要确保输入的格式保持为 int whitespace int,以便我可以在整个程序中始终如一地使用这些值。
有什么想法吗?
我尝试过但没有运气的事情:
- 使用带有
cin.fail()和max()检查的do - while 循环读取。 - 使用
isDigit()进行验证
【问题讨论】:
-
请澄清是否总是在第二个整数之后的行尾; “输入的格式仍然为int whitespace int”到底是什么意思?您的意思是要保留输入文件中两个整数之间发生的确切空格吗?另外,当输入与期望不匹配时,您希望发生什么?
标签: c++ validation input integer cin