這是實作作業系統調度演算法的程式中輸出界面的部分代碼:
int choice = 0;
InitQueue(&readyQueue);
InitQueue(&printQueue);
InitLinkedList(&linkedList);
do {
printf("請輸入你要選擇的調度演算法: ");
printf("1.先來先服務 2.短作業優先 3.時間片輪轉 4.優先級調度 5.退出\n");
scanf("%d",&choice);
switch (choice) {
case 1: FCFS(&readyQueue,&printQueue,process,processNum);
break;
case 2: SJF(&linkedList,&printQueue,process,processNum);
break;
case 3: RR(&readyQueue,&printQueue,process,processNum);
break;
case 4: PSA(&linkedList,&printQueue,process,processNum);
break;
default:
break;
}
} while(choice != 5);
DestroyQueue(&readyQueue);
DestroyQueue(&printQueue);
DestroyLinkedList(&linkedList);
作業系統是Win10和虛擬機中的Redhat,IDE都是CLion,現在的問題是:
1.在windows下:(1)這段函式有時能正常運行,有時只有在第一次回圈時能夠正常輸入,但到了第二次回圈時,無論輸入什么數字、字符再按回車程式都沒反應,不是有些問題中的回圈被跳過了,而是輸入后回車,程式只能換行不運行。
(2)輸出有時會空出一個字符的位置,還會自動換行,見下圖。但是在redhat下輸出的格式沒問題。
2.在redhat下,只有第一次回圈能輸入成功,第二次的問題同上。
如圖:
uj5u.com熱心網友回復:
可以除錯一下看看,到底是怎么回事uj5u.com熱心網友回復:
除錯下,scanf是否讀入錯誤,導致while死回圈。uj5u.com熱心網友回復:
scanf下面加一句getchar()試試轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52069.html
標籤:C語言
上一篇:VS2015 打開工程專案失敗
下一篇:vs+qt插件,在qt creator下添加槽函式出現“no documents matching ui_XXX.h"
