c ++中的空白识别

时间:2009-10-04 19:56:13

标签: c++

我的代码必须使用cin识别空白字符,所以当我使用空格作为输入时,它应该识别空间。我该怎么做?

4 个答案:

答案 0 :(得分:7)

您可以使用std::noskipws来禁用std::cin默认执行的空格跳过:

#include <iostream>
#include <iomanip>

int main() {
  char c;
  std::cin >> std::noskipws;
  while (std::cin >> c) {
    if (c == ' ')
      std::cout << "A space!" << std::endl;
  }
  return 0;
}

答案 1 :(得分:3)

string str;
getline(cin, str); // get the whole line

如果您想处理c字符串,可以使用与字符串cin.getline(....)不同的上述getline

答案 2 :(得分:3)

Cin打破任何类型的空白。如果需要读取整行,则需要使用get line函数:

getline(cin, line);

其中line是std :: string。这仍然会切断任何新线路或回车。

要测试空格的字符串,请检查字符串中的每个字符,并将其与空格字符“”进行比较。这留给读者练习;)

答案 3 :(得分:1)

使用cin.getline读取带空格的行。

http://www.cplusplus.com/reference/iostream/istream/getline/