使用std :: cin时,如何对charlength的出站进行错误检查?
char _charArr[21];
bool inputNotVerified = true;
while (inputNotVerified) {
cout << "input a string no more than 20 chars: ";
cin >> _charArr;
// if the errorchecking works the boolean should be set to false
}
如上面的评论中所述 - 唯一可以打破循环的是输入正确 - 即不超过20个字符。但是我该如何实现呢?
我试图用strlen(_charArr)创建一个条件,但没有成功。
答案 0 :(得分:1)
if (std::cin.getline(_charArr, sizeof _charArr) && std::cin.gcount()) {
// ...
}
std::istream::getline()
只会读取第二个参数提供的最多count
个字符。 gcount()
用于检查是否已读取至少一个字符。