2012-05-02 21 views
1

我想編寫一個等待用戶下達命令的caculator。
例如:
加1 2
子12 4
什麼是找出最好的方法是什麼訂單的用戶給予和秩序後給予令牌(S)?
我在C上寫我的項目在Windows上,它是基於控制檯的。確定向我的應用程序發出什麼訂單的最佳方法?

+1

您是否正在嘗試製作一個互動桌面計算器,例如'bc'或'dc'?或者你是否想要執行一個計算然後退出的命令? – sarnold

+0

@sarnold它接受訂單並打印結果!非常簡單的一個!我想知道是否有任何圖書館員或我可以用來下訂單的東西? –

+0

好吧,這是一個簡單的'argv'內容解析或使用flex和bison編寫一個整潔的解析器的問題 - 如果您想一遍又一遍地調用一個命令行工具,簡單的'argv'解析就可以工作;更復雜的彎曲和野牛方法給你一個更強大的工具。 – sarnold

回答

3

你可以使用scanf

#include <stdio.h> 

int main() 
{ 
    char cmd[1024]; 
    int a, b; 

    printf ("Enter input: "); 
    scanf ("%s %d %d",cmd, &a, &b); 
    if(strcmp(cmd,"add")==0) { 
     printf ("Result: %d\n", a + b); 
    } else if(strcmp(cmd,"sub")==0) { 
     printf ("Result: %d", a - b); 
    } else { 
     printf ("Unrecognized command: '%s'\n", cmd); 
    } 
} 

你應該看看lex and yacc如果你打算建立一個複雜的問題。

2

從標準輸入中讀取行。 fgets可能會有用。
解析每一行。 strtok_r可以在這裏幫助(我總是比它更喜歡strtok,當事情變得複雜時,這會導致令人討厭的錯誤)。
將第一個標記與已知命令列表中的每個命令進行比較。
做什麼需要做。

相關問題