问题描述
- 求帮助!C语言有个输出线程无法执行
- /*创建线程1:读入请求 */
DWORD ThreadID = 1;
//创建线程(对应于函数getInput()),用于接收电梯输入;
HANDLE hRead =CreateThread(NULL0(LPTHREAD_START_ROUTINE)getInputNULL0&ThreadID);DWORD ThreadID2=2;//输出线程
HANDLE hRead2=CreateThread(NULL0(LPTHREAD_START_ROUTINE)printNULL0&ThreadID2);//打印结果的函数
void print(void)
{
//time_count(5);
//printf(""hHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHha"");
if(IS_OUTPUT==1)
{
int ij;
char c;
if((STATE_OUTPUT_FILE=fopen(""d:state_output_file.txt""a+""))==NULL)//打开文件2,state_output_file.txt
{//要写入的时候才打开文件,否则会出错,stream!=NULL
printf(""nCannot open file strike any key exit!"");
getch();
exit(1);
}
system(""color 2f"");
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_INTENSITY);//打印楼层信息gotoxy(2010);//控制光标位置,每次只改变要输出的内容 printf(""%d"" current_floor+up_count+down_count);//都需要加上默认的偏移楼层fputs(""电梯的当前楼层为: ""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中c=(current_floor+up_count+down_count)+48;fputc(cSTATE_OUTPUT_FILE);fputs(""n""STATE_OUTPUT_FILE);
//打印目标楼层
gotoxy(2012);
if(state!=IDLE&&state!=STOP)//电梯处于运行中,有目标楼层
{
printf(""%d ""dest_floor);
fputs(""电梯的目标楼层为: ""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
fputc(dest_floor+48STATE_OUTPUT_FILE);
fputs(""n""STATE_OUTPUT_FILE);}else{ printf(""无""); fputs(""电梯的目标楼层为: 无n""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中}
//打印电梯的运行方向
gotoxy(2014);
if(direction==NONE)//处于闲置时
{
printf(""没有"");
fputs(""电梯的运行方向为: 无n""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
}
else
if(state==RUN)//处于运行时
if(direction == UP)
{
printf(""向上"");
fputs(""电梯的运行方向为: 上n""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中} else { printf(""向下""); fputs(""电梯的运行方向为: 下n""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中 } else { printf(""没有""); fputs(""电梯的运行方向为: 无n""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中 }
//打印电梯的状态
gotoxy(2016);
if(state==RUN) //处于运行时{
printf(""RUN "");
fputs(""电梯的运行状态为: RUNn""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中}else if(state==IDLE){ printf(""IDLE""); fputs(""电梯的运行状态为:IDLEn""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中}else { printf(""STOP""); fputs(""电梯的运行状态为: STOPn""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中}
//打印内部未响应楼层数
gotoxy(5410);
fputs(""电梯的内部未响应楼层为: ""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
for(i=1j=0;i<10;i++)
{
if(inside[i]!=0)
{
printf(""%d ""i);
fputc(i+48STATE_OUTPUT_FILE);
j++;
}
}
if(j==0)
{
printf(""无"");
fputs(""无""STATE_OUTPUT_FILE);
for(i=1;i<9;i++)
printf("" "");
}
else
{
for(i=1;i<=9-j;i++)
printf("" "");
}
fputc('n'STATE_OUTPUT_FILE);//overweight(j);
//打印外部未响应楼层数
//外部向上
fputs(""电梯的外部未响应楼层为: ""STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
gotoxy(5412);
for(i=1j=0;i<10;i++)
{
if(outside_up[i]!=0)
{
printf(""%d ""i);
fputc(i+48STATE_OUTPUT_FILE);
j++;
}
}
if(j==0)
{
printf(""无"");
fputs(""无""STATE_OUTPUT_FILE);
for(i=1;i<9;i++)
printf("" "");
}
else
{
for(i=1;i<=9-j;i++)
printf("" "");
}
// 外部向下
gotoxy(5414);
for(i=1j=0;i<10;i++)
{
if(outside_down[i]!=0)
{
printf(""%d ""i);j++; }}if(j==0){ printf(""无""); for(i=1;i<9;i++) printf("" "");}else{ for(i=1;i<=9-j;i++) printf("" "");}fputc('n'STATE_OUTPUT_FILE);//??? // 系统时间 gotoxy(5416);printf("" "");gotoxy(5416);total_finish=clock();//fputs(""系统已经运行的时间: ""STATE_OUTPUT_FILE);printf(""%d""(total_finish-total_start)/1000);//fputc((total_finish-total_start)/1000+48STATE_OUTPUT_FILE);fputs(""nnn""STATE_OUTPUT_FILE);
//该层时间
gotoxy(5418);
printf("" "");
gotoxy(5418);
time2=clock();
printf(""%d""(time2-time1)/1000);
time1=clock();
//当前服务策略
gotoxy(2020) ;
if(change_running_strategy==1)
{
printf(""先来先服务"");
}
else if(change_running_strategy==2)
{
printf(""顺便服务"");
}
//坐标归位
gotoxy(022);
printf(""n"");
//fflush(STATE_OUTPUT_FILE); //确保不关闭文件情况下数据能写入
fclose(STATE_OUTPUT_FILE);
}
}
解决方案
求大神能够指导线程,我的QQ,896776703,谢谢了,,,电梯这线程不知错哪儿了