首先,我只是一个初学者
int num;
cin>>num;
如何检查num是否为数字且仅为0
与常规exp有关吗?任何人都可以教我吗?
答案 0 :(得分:1)
只有当流包含可解析的字符序列时,才会成功提取。正确使用是这样的:
int num;
if (std::cin >> num)
{
// OK, use "num". E.g. "if (num == 0)", etc.
}
else
{
// Error, no number could be extracted
}
如果提取失败,则流仍处于失败的状态,需要重置(使用clear()
)才能对其进行进一步操作。
(通常最好使用std::getline
从流中提取整个行作为字符串(在耗尽流之前永远不会失败),然后分别处理每一行。)< / p>