【发布时间】:2013-09-26 18:43:58
【问题描述】:
我有两种时间格式 hh:mm:ss 输入的情况。
我知道int 变量从cin 中提取,直到达到非整数。这意味着我可以轻松提取小时,但字符“:”仍会在流中,这会导致分钟提取问题。
我知道我可以使用cin.ignore(),但由于我必须输入两种时间格式,因此仅用于输入的代码会很长而且看起来不太好。
只是给你一个想法:
int h,m,s, h2,m2,s2;
cin>>h;
cin.ignore();
cin>>m;
cin.ignore();
cin>>s;
cin>>h2;
cin.ignore();
cin>>m2;
cin.ignore();
cin>>s2;
我知道 cin 会自动忽略空格。有没有办法让它自动忽略特定字符(在本例中为字符“:”)?
【问题讨论】:
-
您是在寻找一种从字符串中读取时间的算法,还是您想自己做?使用 boost 会有问题吗?
-
@Lainezor 使用不同的分隔符作为空格??
-
@itwasntpete 我实际上想避免使用字符串。但我会很高兴有任何比 11 行代码更紧凑的任务解决方案。编辑:对不起,我忘了,我不想要 Boost 的解决方案。
-
阅读第二个答案...这正是您所需要的。