自动修正C语言代码,C语言作品 定时小工具(修正双引号问题)

首次采用弹窗~~~~

#include

#include

#include

#include

#include

int nl(int a),nll(int a); // 【nl(int a)】 Sleep方式函数 【nll(int a)】 time_t方式函数

char xuanze(char yy);  // 判断输入选择函数

int dongzuo(),jilu(),fs(); //【dongzuo()】 读取用户指定运行动作函数 【jilu()】记录文件函数  【fs()】选择计时方式函数

char ll[130]={0},lj[100]={0},file[]="闹铃动作.txt",kk[]="请将要运行的程序或音乐的绝对路径复制到这里,覆盖这行字并保存(支持DOS命令)...";

int main()

{

system("COLOR 0a");

system("title 欢迎使用由【遲、钝dè豬】设计的程序~~");

printf("*******************************************************************************");

printf("\n\n\t\t\t\t【 说 明 】");

printf("\n\n\t可惜的是不能实现自动开机,不过它的作用不仅仅局限于闹钟......");

printf("\n\n\t嘿嘿,这是值得欣慰地方,提供两种记时方式,以减少时间误差......");

printf("\n\n\t【Sleep】记时方式是让程序暂停运行,暂停时间由用户指定的时间......");

printf("\n\n\t【time_t】方式记时方式是让程序不断读取时间差是否等于用户指定的时间...");

printf("\n\n\t精确到分钟,最低也需要1分钟,有时间再把它精确到秒吧,O(∩_∩)O~.......");

printf("\n\n\t最后感谢【蓝雨森林】QQ:000000......");

printf("\n\n\t解决了让我郁闷了很久的重复使用scanf()函数无法中断程序等待用户输入问题..");

printf("\n\n\t\t\t\t\t\t遲、钝dè豬  QQ:0000000000\n\n");

printf("\t\t\t\t\t\t2010年12月25日 0:11  设计\n\n");

printf("*******************************************************************************");

system("pause");

system("cls");

printf("\n\n\a【请注意弹出的对话框,有可能会隐藏在程序界面的背后...】");

jilu();// 判断、读取记录文件函数

dongzuo(); // 调用记录用户指定函数

fs(); // 计时方式选择函数

}

/*********************************/

/*-------【计时方式选择】------*/

/********************************/

int fs()

{

int a;

if((MessageBox(0,"【Y】Sleep 方式记时  [无倒计时提示,误差较小]\n\n【N】time_t方式记时 [有倒计时提示,误差较大]","选择记时方式",MB_YESNO))==6)

{

system("title 欢迎使用由【遲、钝dè豬】设计的程序~~【Sleep方式记时】");

printf("\n请输入闹铃时间(分钟):");

scanf("%d",&a);

nl(a);

}

else

{

system("title 欢迎使用由【遲、钝dè豬】设计的程序~~【time_t方式记时】");

printf("\n请输入闹铃时间(分钟):");

scanf("%d",&a);

nll(a);

}

strcpy(ll,"\"");

strcat(ll,lj);

strcat(ll,"\"");

printf("【懒猪!时间到!该刷牙洗脸骑着破电动去上班啦...】\n\n\a\a\a");

system(ll); // 执行用户指定的程序、音乐或命令

system("pause');

exit(0);

}

/*********************************/

/*-------【Sleep方式记时】------*/

/********************************/

int nl(int a)

{

a*=60000; // 将毫秒转换为分钟

printf("\n【已进入倒计时闹铃!】\n\n");

Sleep(a); // 中断程序,等待用户指定的时间后返回主函数

}

/**********************************/

/*-------【time_t方式记时】------*/

/*********************************/

int nll(int a)

{

time_t start,end;

int v,d=1,i=60,h=1;

a*=60;// 转化为分钟 1分钟=60秒

printf("\n【已进入倒计时闹铃!】\n\n");

start=time(NULL);// 开始记录时间并赋值给变量start

printf("距离闹铃时间还剩【%d】分钟\n\n",a/60-d);

for(;;)

{

end=time(NULL);// 结束记录时间并赋值给变量end

if((difftime(end,start))==a)// 如果开始记录的时间到结束记录的时间等于指定的时间 则跳出循环

break;

else  // 否则

{

if((difftime(end,start))==i) // 如果开始记录的时间到结束记录的时间等于i=60=1分钟 则显示剩余时间

{

v=a/60-1-d;

if(h==1)// 设定h 控制每分钟只显示一次提示信息

{

printf("距离闹铃时间还剩【%d】分钟\n\n",v);

h=0;

}

}

else if((difftime(end,start))>i) // 控制每分钟都会有显示

{

h=1;

i+=60;//记录分钟

d++;//记录秒

}

}

}

}

/**************************************/

/*-------记录用户指定文件或命令------*/

/*************************************/

int dongzuo()

{

FILE *fp;

char r;

if((fp=fopen(file,"w"))==NULL)

MessageBox(0,"无法写入动作文件","提示",MB_OK);

else

{

fputs(kk,fp);

fclose(fp);

system(file);

}

if((fp=fopen(file,"r"))==NULL)

puts("无法读取动作");

else

{

fscanf(fp,"%[^\n]",lj); // 不写%s 而写%[^\n]是因为让fscanf()函数可以读取空格并写入文件 \n :代表空格

fclose(fp);

if((strcmp(lj,kk))==0)

{

MessageBox(0,"程序未检测到你输入了程序、音乐的绝对路径或DOS命令","注意",MB_OK);

dongzuo();

}

printf("\n\n你输入了这行路径或Dos命令:\n\n【%s】\n\n",lj);

printf("【提示:当时间到了程序会自动运行上面的程序、音乐或命令...】\n\n");

printf("确认以上的路径或Dos命令吗?(Y/N):");

r=xuanze(r);

if(r=='N'||r=='n')dongzuo();

if((MessageBox(0,"是否保存此记录以供下次使用?","提示",MB_YESNO))==6)

MessageBox(0,"如果需要更改运行的程序、音乐或命令,可以删除本目录下的【闹铃动作.txt】\n\n或直接更改里面程序、音乐的绝对路径或命令......","提示",MB_OK);

else

unlink(file);

}

}

/***********************/

/*-------判断输入------*/

/***********************/

char xuanze(char yy)

{

for(;;)

{

scanf("%c",&yy);

fflush(stdin); // 清除一个流...避免重复使用scanf()函数是无法中断程序等待用户输入  (这个问题让我头疼N久...)

if(yy!='y'&&yy!='n'&&yy!='Y'&&yy!='N')

{

printf("\n输入错误,请重新输入:\a");

continue;

}

else

break;

}

return yy;

}

/***********************/

/*-------历史记录------*/

/***********************/

int jilu()

{

FILE *fp;

if((fp=fopen(file,"r"))==NULL);

else

{

printf("\n\n\t发现记录文件,正在读取记录文件...");

fscanf(fp,"%[^\n]",lj); // 为什么不写%s 而写%[^\n]是因为让fscanf()函数可以读取空格并写入文件 \n :代表空格

fclose(fp);

printf("\n\n路径或Dos命令为:\n\n【%s】\n\n",lj);

printf("【提示:当时间到了程序会自动运行上面的程序、音乐或命令...】\n\n");

fs();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值