在流中读取空白字符

在 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;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容