【发布时间】:2020-06-14 18:25:54
【问题描述】:
我正在制作一个需要接收以下输入的程序:
{Time1 Time2 Appointment} 为 {hour1:minute1 hour2:minute2 Appointment}
“约会”是一个无用的字符串输入,我想忽略它
scanf("%d:%d %d:%d",&hour1,&minute1,&hour2,&minute2);
我可以得到小时和分钟,但之后我不能再次使用“scanf”,我怎么能忽略“约会”输入?
【问题讨论】:
-
如果您的意图是真正用 C++ 编写,正如您的问题标签所暗示的那样,您为什么要使用古老的 C 库的
scanf(),而不是现代 C++ 输入流? -
也许你可以试试 scanf("%d:%d %d:%d %*s",&hour1,&minute1,&hour2,&minute2);见stackoverflow.com/questions/34874347/…
-
我在 c++ 中使用库
,有没有办法用 {cin} 输入这个输入? -
如果您想忽略输入的其余部分,则只需关闭输入文件。如果您只想忽略输入到下一个换行符的其余部分,您可以在适当的格式说明符中使用
*。 (例如,如果 Appointment 保证是没有空格的简单字符串,则可以使用"%d:%d %d:%d %*s ") -
当问题是“我怎样才能用
scanf做这个复杂的事情?”,一个好的答案总是“停止使用scanf”。对于复杂的事情,它真的不是很好。见What can I use for input conversion instead of scanf?