c语言update函数用法(C语言写的时钟程序,可是运行了之后不会动一直是0,求大神看看哪里错了)

本文目录
C语言写的时钟程序,可是运行了之后不会动一直是0,求大神看看哪里错了
void Update(CLOCK myclock)改为void Update(CLOCK &myclock)
传的是引用不是形参,否则不会改变myclock的值
这么用C语言做倒计时器
tdio.h》
#include 《conio.h》
#include 《windows.h》
#include 《stdlib.h》
struct tm //定义时间结构体,包括时分秒和10毫秒
{
int hours,minutes,seconds;
int hscd;
}time,tmp,total; //time用以计时显示,tmp用以存储上一阶段时间,total记总时间
int cnt;
FILE* fout;
//每次调用update函数,相当于时间过了10ms
void update(struct tm *t)
{
(*t).hscd++; //10ms单位时间加1
cnt++;
if ((*t).hscd==100) //计时满1s,进位
{
(*t).hscd=0;
(*t).seconds++;
}
if ((*t).seconds==60) //计时满一分,进位
{
(*t).seconds=0;
(*t).minutes++;
}
if ((*t).minutes==60) //计时满一小时,进位
{
(*t).minutes=0;
(*t).hours++;
}
if((*t).hours==24) (*t).hours=0;
//delay();
Sleep(10); //Sleep是windows提供的函数,作用是暂停程序,单位毫秒,所以此处暂停10ms
}
void display(struct tm *t)
{
//此处输出计时结果,\r为回车不换行,既一直在同一行更新时间
printf("%d:",(*t).hours);
printf("%d:",(*t).minutes);
printf("%d:",(*t).seconds);
printf("%d\r",(*t).hscd);
//printf("Now, press ‘e’ key to stop the clock…");
}
void time_init() //初始化时间
{
time.hours=time.minutes=time.seconds=time.hscd=0;
}
void get_total() //计算总时间
{
total.hscd = cnt % 100;
cnt /= 100;
total.seconds = cnt % 60;
cnt /= 60;
total.minutes = cnt % 60;
cnt /= 60;
total.hours = cnt;
}
int main()
{
char m;
time_init();
cnt = 0;
fout = fopen("timeout.txt","w");
printf("按回车键开始计时!\n");
while(1)
{
m = getch();
if(m != ‘\r’) //读入一个输入,如果是回车,那么跳出次循环
printf("输入错误,仅能输入回车键!\n");
else
break;
}
printf("已经开始计时,但是你可以按回车键以分段计时!\n");
while(1)
{
if(kbhit()) //此处检查是否有键盘输入
{
m=getch();
if(m == ‘\r’) //如果等于回车,那么计时结束,跳出循环
break;
else if(m == ‘ ‘) //如果等于空格,显示此次计时,初始化计时器
{
tmp = time; //记录上一段计时器结果
fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd); //写入文件
time_init();
printf("\n");
}
else
{
printf("输入错误,仅支持输入回车键或者空格键!\n");
}
}
update(&time); //更新计时器
display(&time); //显示计时器时间
}
tmp = time; //输出最后一次即使结果,写入文件
fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd);
get_total(); //计算总的时间,显示,并写入文件
printf("\n总时间:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd);
fprintf(fout,"统计时间:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd);
fclose(fout);
printf("已经保存到当前目录下的timeout.txt文件中按任意键结束!");
getch();
}
另外,站长团上有产品团购,便宜有保证
C语言/C++ 一个按行读取 C盘某txt文档 (文档是按行更新的,只输出最新的一行) 怎么写,
方法很多,但都很麻烦,因为你的要求就不平常!下面提供一个方法,相对来说要简便一些。思路是这样的。 1、将每一行的字符个数及各个字符的ASCII值累加为一个整数作为.txt文档每一行的特征数据记录下来(存入一个数据文件)。2、读入更新后的.txt文档,同样获取每一行的特征数据,然后与上次数据对应比较,如果有一个数据不同,就说明该行已经更新,根据要求处理该行。
#include 《stdio.h》
#include 《stdlib.h》
int TotalValue(char *s,size_t *len) {
int i = 0,value = 0;
*len = 0;
while(s) {
++(*len);
value += s;
}
return value;
}
int main(){
int TV,nTV;
size_t size,len,nlen,num = 0;
char ParFile = "parFile.bin";
char DataFile = "dataFile.txt";
char Data;//假定最长行字符数不超过255个英文字符
FILE *fpp,*fpd;
fpp = fopen(ParFile,"rb");
if(fpp == NULL) {//这还是第一次处理文件
if((fpd = fopen(DataFile,"rt")) == NULL) {
printf("无法打开数据文件:%s\n",DataFile);
exit(1);
}
}
fpp = fopen(ParFile,"rb");
while(!feof(fpp) && !feof(fpd)) {
fscanf(fpd,"%s",Data);
fread(&len,sizeof(int),1,fpp);
fread(&TV,sizeof(int),1,fpp);
nTV = TotalValue(Data,&nlen);
if(TV == nTV && len == nlen) continue;
else {
++num;
printf("%s\n",Data); // 显示更新后的文本行
}
}
fclose(fpp);
fclose(fpd);
printf("共更新了%d行。\n",num);
fpd == fopen(DataFile,"rt");
fpp = fopen(ParFile,"wb");
while(!feof(fpp) && !feof(fpd)) {//重新获取文本文件特征数据
fscanf(fpd,"%s",Data);
fread(&len,sizeof(int),1,fpp);
fread(&TV,sizeof(int),1,fpp);
nTV = TotalValue(Data,&nlen);
fwrite(&nlen,sizeof(int),1,fpp);
fwrite(&nTV,sizeof(int),1,fpp);
}
fclose(fpp);
fclose(fpd);
return 0;
}

更多文章:
最全ascii码对照表汉字范围(汉字 ascii值得范围 字符编码为utf-8 求所有汉字的ascii值得范围)
2026年8月24日 12:00
个人述职报告ppt(简约彩色个人述职报告PPT模板最新怎么样)
2025年9月19日 22:30
pycharm安装labelme(Pycharm及python安装详细教程 python详细安装教程)
2025年9月28日 13:15
competition的中文意思(game,tournament,match和competition这四个词使用上的注意以及区分)
2025年12月19日 12:15
linuxvim全部删除(vim如何删除光标所在行后面的所有行)
2025年10月30日 16:30
rhino的trim怎么用(rhino中如何能切割不在同一平面的线)
2026年4月10日 11:30
firstfloor是几楼(为什么英国说的一楼,其实是中国和美国人说的二楼.)
2026年1月15日 13:00
dirty pair(李阳疯狂英语100个发音秘诀 字母歌歌词的翻译,不要 网页链接什么的,求直接写下来)
2026年8月13日 19:00
nginx实战反向代理(Nginx 最全操作——nginx反向代理(5))
2025年9月6日 23:45
sqlserver数据库名称是哪个(重命名SQLServer数据库的方法)
2025年9月30日 05:15
杰克琼斯旗下高端品牌叫什么(杰克琼斯和ONLY是不是一家公司的)
2026年7月11日 21:00
gpg error(cydia出现GPG error错误怎么办)
2025年10月26日 19:30






![在VC++中,tchar[]怎么转成string类型?c++ 关于getchar()函数](/static/images/nopic/3.jpg)





