在 C/C++ 中,用 scanf 和 getchar 是可以拿到流里面的空白字符的:
char c;
// c = getchar();
scanf("%c", &c);
// 假设 stdin 里的内容是" \thello world\n",则 c 的值是' ',即空格,ASCII 是 32
但是 std::cin 默认会跳过空白符的(如空格符、制表符、换行符等):
char c;
cin >> c;
// 如果 stdin 里的内容是" \thello world\n",则 c 的值是'h'
要让 cin 能够读取空白字符,可以提前设置 std::cin >> std::noskipws;
。如果要恢复默认,则 std::cin >> std::skipws;
网友评论