有没有一种简单的方法来检查cin输入是否有空格?

时间:2014-11-02 09:32:47

标签: c++

说我有类似int scin >> s的内容。是否有一种简单的方法可以测试's'的用户输入是否为空白而不使用isspace,这会导致首先将该int转换为字符串,然后在测试后再次返回int。

2 个答案:

答案 0 :(得分:3)

使用std::getline函数将输入的整行作为std::string,然后解析该行,这可以像使用std::stoi一样简单在C ++ 11中:

std::string input;
std::getline(input, input, std::cin);
int const s = std::stoi(input);

它将检查输入的有效性,如果不能执行转换则抛出异常。此外,将输入作为std::string提供,您可以执行任何您喜欢的检查,并且检查字符串中特定字符是否存在是微不足道的。

答案 1 :(得分:1)

如果你这样做: -

int s;
cin >> s;

进入空白时甚至不会返回。用户必须输入一些非空格字符。