一个快速,较小的Q ++

时间:2012-10-29 23:33:04

标签: c++

首先,我只是一个初学者

int num;
cin>>num;

如何检查num是否为数字且仅为0

与常规exp有关吗?任何人都可以教我吗?

1 个答案:

答案 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>