如何从用冒号分隔的cin中获取输入?

How to get input from cin, which are seperated by colon?

我正在尝试获取像 12:30:00 这样的时间输入,即 hour:minute:second,然后将它们放入一个结构中。我正在使用 cin,但它仅在我使用 space 而不是像 12 30 00 这样的冒号时才起作用。我怎样才能让它与冒号一起工作而不是 space?请尽可能简单,我是新手。

例如:

struct time{
    int hour,minute,second;
    long acc_seconds;
}tm;

int main(){
cout <<"Please enter date as HH:MM:SS";
cin >> tm.hour>>tm.minute>>tm.second;
}

你可以把时间存入String,然后根据2个冒号的位置把它分成时、分、秒,然后存入3个整数。

使用占位符对象将 ':' 读入。将数字读入正确的对象中。

char dummy;
cout << "Please enter date as HH:MM:SS";
cin >> tm.hour >> dummy >> tm.minute >> dummy >> tm.second;

有时候旧的更好

scanf("%d:%d:%d", &tm.hour, &tm.minute, &tm.second);