闹钟程序的问题

sky_lark 2009-03-11 05:52:49
想写一个控制台小闹钟程序.

获得系统时间以后.卡住了...不知道怎么写输入时间的部分...

程序很简单.只需要实现输入一个日期和时间如:03/05/2009 17:00:00 闹钟响.

再大一点.想写一个延时.就是按哪个键闹钟会过几分钟再响.

大大们帮个忙.给点指点.或者帮俺把代码添全学习下...

弄了一下午.快崩溃了.


#include <iostream>
#include <time.h>

using namespace std;

int main( void ) //获取系统当前日期及时间
{

time_t t = time(0);

char tmp[40];

strftime( tmp, sizeof(tmp), "%x %A %X %p",localtime(&t) );

cout<<"系统当前时间(Month/Day/Year):"<<endl<<tmp<<endl;

}

//之后的不会写了..T_T
...全文
157 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
S_ShineBoy 2009-03-13
  • 打赏
  • 举报
回复
什么都不懂,俺是新手!
  • 打赏
  • 举报
回复
直接计时,封装alarm就可以了。
小G 2009-03-11
  • 打赏
  • 举报
回复
mark
genius_tong 2009-03-11
  • 打赏
  • 举报
回复
UP~~~
sky_lark 2009-03-11
  • 打赏
  • 举报
回复
T_T 有没人啊。。。

我最不懂的地方就是怎么输入一个时间 让它跟系统时间比对...

输入的是一个串.怎么转换才能成为系统认识的时间格式...

大大们.帮忙啊...
sky_lark 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhuxueling 的回复:]
Operating System??
[/Quote]

Vista
VS2008
zhuxueling 2009-03-11
  • 打赏
  • 举报
回复
Operating System??
chin_chen 2009-03-11
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <time.h>

void wait ( int seconds )//输入要等待的秒数,你自己可以转换一下。
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}

int main ()
{
int n;
printf ("Starting countdown...\n");
for (n=10; n>0; n--)//这里是测试用的,你实际用的时候,不需要这个循环的。
{
printf ("%d\n",n);
wait (1);//这里是每次等一秒钟
}
printf ("FIRE!!!\n");
return 0;
}
sky_lark 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chin_chen 的回复:]
C/C++ codewhile(true)
{
if(mytime==settime)
break;

}
[/Quote]

谢谢.这个用得上.比较的部分解决了.

差输入指定时间那部分了...也就是闹钟定时的部分..
sky_lark 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fairchild811 的回复:]
输入当年的年月日啊,时分秒啊什么的,再减一下,得到具体秒数,就可以了
[/Quote]

就是不知道怎么输这部分...-.-...

定义一个时间类?还是咋样...最好能给出参考代码..

俺比较菜..-.-...
chin_chen 2009-03-11
  • 打赏
  • 举报
回复
while(true)
{
if(mytime==settime)
break;

}
fairchild811 2009-03-11
  • 打赏
  • 举报
回复
输入当年的年月日啊,时分秒啊什么的,再减一下,得到具体秒数,就可以了
夹心饼干 2009-03-11
  • 打赏
  • 举报
回复
time_t temp= time(NULL);
struct tm *blocal = localtime(&temp);
cout<<"time is "<<asctime(blocal)<<endl;
cout<<blocal->tm_year+1900 <<"年"<<blocal->tm_mon+1<<"月"<<blocal->tm_mday<<"日"<<endl;
得到当前的年月日

获得时间就更加简单

先time,然后将asctime用strcpy到串里打印,
延时用sleep啊,不过是把你输入的要闹的时间一起多加你sleep的时间吧
在写个while(1),一直获取时间,知道得到的和你定时的相同的时候再break,触发闹钟
sky_lark 2009-03-11
  • 打赏
  • 举报
回复
在线等...T_T

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧