2015-07-22 37 views
2

我目前正在開發一個項目,我需要做一些非常具體的工作。我需要使用char數組存儲database的值,但我還需要將乘法的值存儲在最後一個槽中,我不知道如何執行此操作。投射char變量並乘以它似乎在int上存儲垃圾,因爲我得到值的方式應該是它的範圍。我嘗試過的另一個建議是使用memset()手動設置值,但我不知道如何去做。將存儲在數組中的char類型轉換爲int變量

這裏是我的代碼

int form_fill(int room_ID, char database[rooms * floors * req_data][20]) { 
    printf ("Enter the first name\n"); 
    fflush(stdin); 
    gets (database[room_ID]); 
    printf ("Enter the second name\n"); 
    gets (database[room_ID + 1]); 
    printf ("Enter the third name\n"); 
    gets (database[room_ID + 2]); 
    printf ("How many days will the guest stay?\n"); 
} 

理想情況下,天用戶輸入將被存儲在database[room_ID + 3]作爲char和更早全球聲明的另一個變量,存儲結果相乘,作爲char,在database[room_ID + 4]。 任何人有任何解決方案?

ps。我知道使用gets是不安全的,但那是老師問的,所以我必須這樣做。

+5

'fflush(stdin);'---未定義的行爲。 –

+4

[FYR]'gets()'是**邪惡**,使用'fgets()'。 –

+4

「我知道使用gets是不安全的,但那是老師問的,所以我必須這樣做。」 - *總是質疑老師,他們可能會發現新的東西* –

回答

2

您的問題聲明不是很清楚,但截至目前,通用的方式來實現你想要的是

  1. 以從用戶輸入的「多少天將與客人入住?」使用fgets()
  2. 使用strtol()字符串輸入轉換爲int並將其存儲在臨時int變量中。
  3. 將您的全球價值乘以char
  4. 打印結果爲database[room_ID+4]使用snprintf()
+1

這很好!非常感謝 –