高中數學擴充套件/數學程式設計/處理命令
外觀
添加了兩個新函式:char retrieve_keypress() 和 char validate(char check_me) ,並更改了兩個函式:void input_message(),char input()。
新增功能
char retrieve_keypress()
- 此函式確保程式輸入和輸出在控制檯上顯示在不同的行上。這使程式錯誤訊息更清晰,並且當我們列印它時,將使程式輸出更清晰。
- 從控制檯讀取一個鍵。
- 在讀取一個鍵後,向控制檯輸出一個換行符。這使程式錯誤訊息更清晰,並且當我們列印它時,將使程式輸出更清晰。
char validate (char checkme)
- 如果傳遞給它的字元位於此集中:{'=' '+' '-' 'd' 'D' 'x' 'X'},則返回 true,否則返回 false。
更改
void input_message()
- 更改為提示此程式將處理的命令。
char input()
- 更改為
- 呼叫 retrieve_keypress 獲取命令
- 驗證命令
- 如果命令無效,則列印錯誤訊息和說明。
//function prototypes
//...
char retrieve_keypress();
char validate(char check_me);
//function definitions
//...
void input_message()
{
// Prompt for Commands
cprintf("Key Action.\n");
cprintf("= Display f(x) = result.\n");
cprintf("d or D Change delta.\n");
cprintf("+ Add delta to x.\n");
cprintf("- Subtract delta from x.\n");
cprintf("x or X End program.\n");
}
char input()
{
// Input a character at a time
read=retrieve_keypress();
// Validate command
while (!validate(read))
{
cprintf("\nInvalid Command.\n");
input_message();
read=retrieve_keypress();
}
return read;
}
char retrieve_keypress()
{
char ret_val;
ret_val=getche();
cprintf("\n");
return ret_val;
}
char validate(char check_me)
{
char ret_val=0;
switch (check_me)
{
case '=':
case '+':
case '-':
case 'd':
case 'D':
case 'x':
case 'X': ret_val++;
break;
}
return ret_val;
}