time.h:打印时屏幕上还有一个'%'
time.h:there is another '%' on the screen when print time
这是我试图理解的程序。
源代码
typedef float Time;
Time getCurrentTime() {
time_t rawtime;
struct tm * timeinfo;
Time currentTime;
time ( &rawtime ); //get system time
timeinfo = localtime ( &rawtime );//convert to local time
// tm_hour, tm_min
currentTime = (float)timeinfo->tm_hour + timeinfo->tm_min * 0.01;
printf("InnerTime:%7.2f\n", currentTime);
return currentTime;
}
int main(void) {
Time tm = getCurrentTime();
printf("OuterTime:%7.2f", tm);
return 0;
}
为什么OuterTime
的最后多了一个%
?
但是InnerTime
!
最后没有%
这很可能是您的 shell 提示。添加一个 \n 以确保。
在外部时间打印中,您错过了在格式字符串中包含 newline
,因此在程序打印最后一个输出并退出后,提示会在 打印后立即返回输出。
尝试
printf("OuterTime:%7.2f\n", tm);
强制提示出现在下一行。
这是我试图理解的程序。
源代码
typedef float Time;
Time getCurrentTime() {
time_t rawtime;
struct tm * timeinfo;
Time currentTime;
time ( &rawtime ); //get system time
timeinfo = localtime ( &rawtime );//convert to local time
// tm_hour, tm_min
currentTime = (float)timeinfo->tm_hour + timeinfo->tm_min * 0.01;
printf("InnerTime:%7.2f\n", currentTime);
return currentTime;
}
int main(void) {
Time tm = getCurrentTime();
printf("OuterTime:%7.2f", tm);
return 0;
}
为什么OuterTime
的最后多了一个%
?
但是InnerTime
!
%
这很可能是您的 shell 提示。添加一个 \n 以确保。
在外部时间打印中,您错过了在格式字符串中包含 newline
,因此在程序打印最后一个输出并退出后,提示会在 打印后立即返回输出。
尝试
printf("OuterTime:%7.2f\n", tm);
强制提示出现在下一行。