【发布时间】:2015-03-04 10:32:19
【问题描述】:
用户输入一个值(通过<iostream>)到 unsigned long long 变量。如何检测输入变量是否为负?输入流保持在good()state。我可以不使用额外的string 变量吗?
unsigned long long SafeInput(){
unsigned long long buffer = 0;
while (!(cin >> buffer) || cin.get() != '\n')
{
cout << "Error. Input again: ";
cin.clear();
cin.sync();
}
return buffer;
}
【问题讨论】:
-
你不能把它静态转换成signed long long吗?
-
你可以用一个额外的有符号变量来做到这一点。
-
signed long long剪切正变量。范围是unsigned的两倍。这是一个糟糕的解决方案。
标签: c++ variables iostream long-integer