在 C/C++ 中,用 scanf 和 getchar 是可以拿到流里面的空白字符的:
char c;
// c = getchar();
scanf("%c", &c);
// 假設 stdin 里的內(nèi)容是" \thello world\n",則 c 的值是' ',即空格,ASCII 是 32
但是 std::cin 默認會跳過空白符的(如空格符、制表符、換行符等):
char c;
cin >> c;
// 如果 stdin 里的內(nèi)容是" \thello world\n",則 c 的值是'h'
要讓 cin 能夠讀取空白字符,可以提前設置 std::cin >> std::noskipws;
。如果要恢復默認,則 std::cin >> std::skipws;