如下图,我想的是是输出一个时间然后再输入一串字符结束一次循环,为什么先输出了两个时间

#include"stdio.h"
#include"time.h"

struct tm *ptr;
int main(void)
{int i,repeat;
char c[80];
time_t It;

scanf("%d",&repeat);
for(i = 0; i < repeat ;i++){
It = time(NULL);
ptr = localtime(&It);

printf("%d:%d:%d\n",ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
while(getchar() != '\n') ;

}

}




回首忆惘然
浏览 89回答 2
2回答

幕布斯6054654

scanf("%d",&repeat);getchar(); ////这里需要获取一次字符,因为输入完repeat后,按下了一次回车啊!!for(i = 0; i < repeat ;i++)

呼如林

#include&nbsp;<stdio.h>&nbsp;#include&nbsp;<time.h>&nbsp;int&nbsp;main(){&nbsp;time_t&nbsp;rawtime;&nbsp;struct&nbsp;tm&nbsp;*&nbsp;timeinfo;&nbsp;time&nbsp;(&nbsp;&rawtime&nbsp;);&nbsp;timeinfo&nbsp;=&nbsp;localtime&nbsp;(&nbsp;&rawtime&nbsp;);&nbsp;printf&nbsp;(&nbsp;"当前系统时间:&nbsp;%s",&nbsp;asctime&nbsp;(timeinfo)&nbsp;);&nbsp;return&nbsp;0;}说明:time_t // 时间类型(time.h 定义)&nbsp;struct tm { // 时间结构,time.h 定义如下:&nbsp;int tm_sec;&nbsp;int tm_min;&nbsp;int tm_hour;&nbsp;int tm_mday;&nbsp;int tm_mon;&nbsp;int tm_year;&nbsp;int tm_wday;&nbsp;int tm_yday;&nbsp;int tm_isdst;&nbsp;}&nbsp;time ( &rawtime ); // 获取时间,以秒计,从1970年1月一日起算,存于rawtime&nbsp;localtime ( &rawtime ); //转为当地时间,tm 时间结构&nbsp;asctime() // 转为标准ASCII时间格式:&nbsp;//就是直接打印tm,tm_year 从1900年计算,所以要加1900,月tm_mon,从0计算,所以要加1&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP