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



下面代码中的第一个scanf匹配并丢弃下一个输入流字符,而第二个scanf匹配并丢弃下一个输入流字符(如果它是冒号)。有没有办法使用cin>>除了手动检查它存储在变量ch中的字符的值吗?

scanf("%*c");
scanf(":");
char ch;
cin >> ch;

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

cin.get();  // read a single character (discarding it)
if (cin.peek() == ':') cin.get();   // discard a ':'
if (cin.get() != ':') cin.unget();  // same thing

然而,iostreams并没有真正内置的"扫描"功能。像scanf。

最新更新