下面代码中的第一个scanf匹配并丢弃下一个输入流字符,而第二个scanf匹配并丢弃下一个输入流字符(如果它是冒号)。除了手动检查它存储在变量ch中的字符值之外,有没有其他方法可以使用cin>>来模仿这种行为?
scanf("%*c");
scanf(":");
char ch;
cin >> ch;发布于 2021-08-22 22:31:56
对于单个字符,使用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然而,iostream并没有像scanf那样真正内置的“扫描”功能。
https://stackoverflow.com/questions/68885446
复制相似问题