首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用cin>>模拟scanf(“%*c”)和scanf(":")行为

如何使用cin>>模拟scanf(“%*c”)和scanf(":")行为
EN

Stack Overflow用户
提问于 2021-08-22 21:52:34
回答 1查看 37关注 0票数 0

下面代码中的第一个scanf匹配并丢弃下一个输入流字符,而第二个scanf匹配并丢弃下一个输入流字符(如果它是冒号)。除了手动检查它存储在变量ch中的字符值之外,有没有其他方法可以使用cin>>来模仿这种行为?

代码语言:javascript
运行
复制
scanf("%*c");
scanf(":");

char ch;
cin >> ch;
EN

回答 1

Stack Overflow用户

发布于 2021-08-22 22:31:56

对于单个字符,使用get/peek/unget通常比使用>>更容易。

代码语言:javascript
运行
复制
cin.get();  // read a single character (discarding it)

if (cin.peek() == ':') cin.get();   // discard a ':'

if (cin.get() != ':') cin.unget();  // same thing

然而,iostream并没有像scanf那样真正内置的“扫描”功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68885446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档