将会解决的问题
① 创建多个线程(倒计时与输入同时进行)
② 改变光标的位置
③ 删除控制台上已经输出的字符
在最近的程序设计中,遇到了这么一个问题:
在一个英语单词拼写程序中,想要添加一个计时功能:给出一个计时器显示倒计时,当时间到了如果还没成功拼写便切到下一个单词
这个功能乍一看感觉不难,也就是新建一个循环每秒将预定时间减少1,然后打印出来。
但很快问题出来了,如果要计时,就必须在循环里边不断打印,无法执行输入语句,同样要执行输入语句就没办法计时。
该怎么解决?
答案就是使用多线程,将倒计时放在一个线程,输入单词放在另一个线程,这样就解决了上面的问题
实现多线程
① 需要的头文件:
include <process.h>
实现多线程
beginthread(start_address, stack_size, arglist); 创建一个线程
# 百度:
– start_address:新线程的起始地址 ,指向新线程调用的函数的起始地址
– stack_size:新线程的堆栈大小,可以为0
– arglist:传递给线程的参数列表,无参数时为NULL
endthread(); 结束一个线程
include <windows.h>
实现线程休眠
Sleep(1000); 休眠1秒
② 实现倒计时一边输入单词
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <process.h>
#include <conio.h>
void inputc(void*);
void timec(void*);
void gotoxy(int x, int y);
int isrun = 1; //控制主线程运行或结束
int timerest = 10; //设置初始时间
char word[10]