2014-10-27 93 views
-5

我想寫一個C++程序,你可以選擇你想要做的操作,然後選擇數量來計算結果。我想使用getchar函數,但我無法弄清楚。 你甚至可以讓int變得像變量一樣嗎?選擇和迭代

#include <iostream> 
#include <stdio.h> 

using namespace std; 

int main() 
{ 
/*char a_char; 
a_char=getchar(); 
cout<<a_char;*/ 

    int opcode; 
    int a, b; 
    int result; 

    printf("Program for Addition, Subtraction, Multiplication and Division\n"); 
    printf("Enter Your Choice: 1 - Add, 2 - Sub, 3 - Mul, 4 - Div: "); 
    scanf("%d", &opcode); 
    printf("Enter First Number:"); 
    scanf("%d", &a); 
    printf("Enter Second Number:"); 
    scanf("%d", &b); 

    switch(opcode) 
    { 
    case 1: 
     result = a + b; 
     printf("%d + %d = %d", a, b, result); 
     break; 
    case 2: 
     result = a - b; 
     printf("%d - %d = %d", a, b, result); 
     break; 
    case 3: 
     result = a * b; 
     printf("%d * %d = %d", a, b, result); 
     break; 
    case 4: 
     result = a/b; 
     printf("%d/%d = %d\n%d %% %d = %d", a, b, result, a, b, a % b); 
     break; 
    } 

} 
+2

標準警告,'缺省'案件丟失。另外,不要混合'C'和'C++'。這看起來像'c'['scanf()','printf()'] – 2014-10-27 13:26:36

+0

'int main(){char a; a = getchar(); std :: cout << a << std :: endl; }'按預期工作:它讀取一個字符(和「輸入」鍵)並打印出該字符。 – TobiMcNamobi 2014-10-27 13:31:24

+1

你能解釋一下你的意圖嗎?有3個用戶輸入('opcode','a'和'b')。你想成爲'char'哪一個?他們全部?這意味着用戶不能輸入超過1位數的值,或者你想要一個__array__的char字符(例如,'12'作爲'1'字符+'2'字符)? – gmas80 2014-10-27 13:40:27

回答

1

假設,要輸入通過getchar操作碼,它會是這個樣子:

opcode = getchar(); 

,然後在switch你包圍在奇異引號的值:

case '1': 
.... 
case '2': 
.... and so on 
0

您可以使用以下代碼來實現您確切需要的內容。

您可以替換以下行,

scanf("%d", &opcode); 

opcode=getchar(); 
opcode = opcode-'0'; 

由於的getchar會給你ASCII碼。所以你需要轉換爲整數值,所以你需要減去'0'。

它是邏輯:'0'是48 :)