【发布时间】:2015-05-31 04:33:04
【问题描述】:
以下代码用于解析时间,例如 07:04:51:
#include <stdio.h>
int main() {
int hh, mm, ss;
scanf("%i:%i:%i\n", &hh, &mm, &ss);
printf("%i:%i:%i\n", hh, mm, ss);
}
有些时候可以解析,有些则不能:
$ echo 07:04:51 | ./test.exe
7:4:51
$ echo 08:04:51 | ./test.exe
0:0:32767
$ echo 09:04:51 | ./test.exe
0:0:32766
$ echo 10:04:51 | ./test.exe
10:4:51
$ echo 11:09:10 | ./test.exe
11:0:32764
是什么原因?
【问题讨论】:
-
...检查scanf的返回值,否则看不到错误。
-
@user3121023:你应该这样回答。