软件工程小施同学 2014-05-22 06:17 采纳率: 50%
浏览 2254

求帮助!C语言有个输出线程无法执行

/*创建线程1:读入请求 */
DWORD ThreadID = 1;
//创建线程(对应于函数getInput()),用于接收电梯输入;
HANDLE hRead =CreateThread(NULL,0(LPTHREAD_START_ROUTINE)getInput,NULL,0,&ThreadID);

DWORD ThreadID2=2;//输出线程
HANDLE hRead2=CreateThread(NULL,0(LPTHREAD_START_ROUTINE)print,NULL,0,&ThreadID2);

//打印结果的函数
void print(void)
{
//time_count(5);
//printf("hHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHh\a");
if(IS_OUTPUT==1)
{
int i,j;
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(20,10);//控制光标位置,每次只改变要输出的内容  
printf("%d", current_floor+up_count+down_count);//都需要加上默认的偏移楼层
fputs("电梯的当前楼层为: ",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
c=(current_floor+up_count+down_count)+48;
fputc(c,STATE_OUTPUT_FILE);
fputs("\n",STATE_OUTPUT_FILE);

//打印目标楼层
gotoxy(20,12);
if(state!=IDLE&&state!=STOP)//电梯处于运行中,有目标楼层
{
printf("%d ",dest_floor);
fputs("电梯的目标楼层为: ",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
fputc(dest_floor+48,STATE_OUTPUT_FILE);
fputs("\n",STATE_OUTPUT_FILE);

}
else
{
    printf("无");
    fputs("电梯的目标楼层为: 无\n",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
}

//打印电梯的运行方向
gotoxy(20,14);
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(20,16);
if(state==RUN) //处于运行时

{
printf("RUN ");
fputs("电梯的运行状态为: RUN\n",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中

}
else if(state==IDLE)
{

    printf("IDLE");
    fputs("电梯的运行状态为:IDLE\n",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
}
else 
{
    printf("STOP");
    fputs("电梯的运行状态为: STOP\n",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
}

//打印内部未响应楼层数
gotoxy(54,10);
fputs("电梯的内部未响应楼层为: ",STATE_OUTPUT_FILE);//将电梯状态读入文件STATE_OUTPUT_FILE中
for(i=1,j=0;i<10;i++)
{
if(inside[i]!=0)
{
printf("%d ",i);
fputc(i+48,STATE_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(54,12);
for(i=1,j=0;i<10;i++)
{
if(outside_up[i]!=0)
{
printf("%d ",i);
fputc(i+48,STATE_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(54,14);
for(i=1,j=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(54,16);
printf("            ");
gotoxy(54,16);
total_finish=clock();
//fputs("系统已经运行的时间:  ",STATE_OUTPUT_FILE);
printf("%d",(total_finish-total_start)/1000);
//fputc((total_finish-total_start)/1000+48,STATE_OUTPUT_FILE);

fputs("\n\n\n",STATE_OUTPUT_FILE);

//该层时间
gotoxy(54,18);
printf(" ");
gotoxy(54,18);
time2=clock();
printf("%d",(time2-time1)/1000);
time1=clock();
//当前服务策略
gotoxy(20,20) ;
if(change_running_strategy==1)
{
printf("先来先服务");
}
else if(change_running_strategy==2)
{
printf("顺便服务");
}
//坐标归位
gotoxy(0,22);
printf("\n");
//fflush(STATE_OUTPUT_FILE); //确保不关闭文件情况下数据能写入
fclose(STATE_OUTPUT_FILE);
}
}

  • 写回答

1条回答

  • 软件工程小施同学 博客专家认证 2014-05-22 06:19
    关注

    求大神能够指导线程,我的QQ,896776703,谢谢了,,,电梯这线程不知错哪儿了

    评论

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误