将会解决的问题
① 创建多个线程(倒计时与输入同时进行)
② 改变光标的位置
③ 删除控制台上已经输出的字符
在最近的程序设计中,遇到了这么一个问题:
在一个英语单词拼写程序中,想要添加一个计时功能:给出一个计时器显示倒计时,当时间到了如果还没成功拼写便切到下一个单词
这个功能乍一看感觉不难,也就是新建一个循环每秒将预定时间减少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]

本文介绍了如何在C语言中解决在Windows环境下实现多线程,以便在倒计时的同时能进行单词输入。通过创建两个线程,一个负责倒计时,另一个处理用户输入,利用beginthread函数创建线程,Sleep函数实现线程休眠,并讨论了改变光标位置和清除屏幕内容的方法。
最低0.47元/天 解锁文章
2178





