2017-01-26 40 views
0

我是新來的C++,我必須編寫一個程序,它需要一個用戶4位數字並將其轉換爲單詞,即7238將被編寫爲7 2 2 8。然而,它將每個數字都寫成未知數。對於noob的任何建議將不勝感激。閱讀數字並轉換爲字

#include iostream 

using namespace std; 

int main() { 


    char number; 


    cout << "Please enter a 4 digit number: "; 

    cin >> number; 

     switch(number){ 

     case 1 : 
      cout<< "one"; 
      break; 
     case 2 : 
      cout<< "two"; 
      break; 
     case 3 : 
      cout<< "three"; 
      break; 
     case 4 : 
      cout<< "four"; 
      break; 
     case 5 : 
      cout<< "five"; 
      break; 
     case 6 : 
      cout<< "six"; 
      break; 
     case 7 : 
      cout<< "seven"; 
      break; 
     case 8 : 
      cout<< "eight"; 
      break; 
     case 9 : 
      cout<< "nine"; 
      break; 
     case 0 : 
      cout<< "zero"; 
      break; 

     default : 
      cout << "UNKNOWN."; 
    } 

} 
+1

一個字符是一個字符 - 你怎麼打算讀4個位數成嗎? –

+0

你熟悉循環嗎? –

+0

'number'變量的類型必須是'int',並且您必須嘗試使用​​循環來分隔數字,分開並計算其餘的數字 –

回答

0

您需要在您的case語句中放入ascii值。目前,您正在比較數字的ASCII值,數字爲0 - 9. 數值可在此處找到:http://www.asciitable.com/

+0

不需要從表中獲取值,只需使用像'1'這樣的字符文字即可。 – Barmar

+0

我同意,但你可以做一個或另一個。它比'桌子'更像'桌子'。我想從OP的帖子中可以明顯看出,他們不知道字符和數字值之間的差別。所以我的鏈接和方法有兩個目的。 1.解決方案2.關於ascii值的課程 – ccpgh

+0

我想,但我們不想提倡將ASCII值直接硬編碼到程序中的壞習慣。 – Barmar

0

您的變量的類型爲char。 A char存儲一個字符,通常是ASCII編碼的。如果用戶輸入「1」,例如,通常會轉化爲49的整數值,而不是1無論是讀入int或更改標籤的情況下使用字符文字:

case '1': 
    cout << "one"; 
    break; 

你可以然後使用循環讀取多個數字。

1

聽起來像功課,但這裏有一些提示。將您的number變量更改爲int類型您可以使用除法和模數將數字分解爲單個變量。我會將這些填入整數數組中。

int array[4]; 
arr[0] = (number/1000) % 10; // Thousands 
.......       // You do the hundreds and tens 
arr[3] = (number % 10);   // Ones 

然後在計數器小於4(數組長度)的地方使用圍繞switch語句的循環。確保在每個循環結束時增加計數器。哦,它是#include <iostream>

1

隨着to_stringrange based for

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    int number; 
    cout << "Enter the number: "; 
    cin >> number; 

    string strnum = to_string(number); 
    for (auto c : strnum) 
    { 
     switch (c) 
     { 
      case '0': cout << "zero "; break; 
      case '1': cout << "one "; break; 
      case '2': cout << "two "; break; 
      case '3': cout << "three "; break; 
      case '4': cout << "four "; break; 
      case '5': cout << "five "; break; 
      case '6': cout << "six "; break; 
      case '7': cout << "seven "; break; 
      case '8': cout << "eight "; break; 
      case '9': cout << "nine "; break; 
      default: cout << "non-digit"; break; 
     } 
    } 
    return 0; 
} 
相關問題