嗨,有人可以帮我吗。我需要检查我的输入仅包含整数。我从查找中猜测我使用了isDigit
函数,但是我不确定如何使用它来检查整个数字。
我正在使用C ++与MSI进行交互,因此我得到的整数如下:
hr = WcaGetProperty(L"LOCKTYPE",&szLockType);
ExitOnFailure(hr, "failed to get the Lock Type");
我想我必须将
szLockType
更改为char,然后使用isdigit
来扫描每个字符,但是我不确定如何实现此功能。任何帮助将不胜感激。即时贴是新手,如果这是一个非常琐碎的问题,请原谅。.:) 最佳答案
szLockType的类型是什么?
它是一个以空值结尾的字符字符串吗?
然后,您可以使用数组语法获取单个字符。
for(int i = 0; i < std::strlen(szLockType); i++) {
if(!std::isDigit(szLockType[i])) {
// it contains a non-digit - do what you have to do and then...
break; // ...to exit the for-loop
}
}
还是std :: string?然后语法略有不同:
for(int i = 0; i < szLockType.length(); i++) {
if(!std::isDigit(szLockType.at(i)) {
// it contains a non-digit - do what you have to do and then...
break; // ...to exit the for-loop
}
}