下面代码中的第一个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。