2013-01-05 14 views
1

我有一個代碼,用戶必須把升價的油漆價格...但它只接受像「2.50」的價格,我可以讓程序轉換成一個點,如果用戶把「 2,50" ?使用C!我可以讓程序讀取'嗎? '如果用戶放置','?使用C

printf ("\n How many liters of green paint we'll use? "); 
    scanf ("%d", &green); 
    printf ("\n How many liters of blue paint we'll use? "); 
    scanf (" %d", &blue); 
    printf ("\n What's the price for the liter of green paint? "); 
    scanf ("%f", &priceG); 
    fflush(stdin); 
    printf ("\n What's the price for the liter of blue paint? "); 
    scanf ("%f", &priceB); 
+4

你必須改變你的_locale_。見例如['setlocale'](http://en.cppreference.com/w/c/locale/setlocale)。 –

回答

1

收集輸入到和執行操作..

遍歷字符串的每個字符,如果你遇到,.

取代它把經過字符轉換成另一個字符串遍歷時,當找到,時,將其替換爲.

此程序可能很長,但它可能有所幫助並符合您的要求。

+0

你能否在這整個過程中添加必要的強制轉換 – nobalG

+1

@ t3n:遍歷一個字符串並將其放入另一個不需要任何強制轉換。完成此操作後,可以使用atof將該字符串轉換爲float ..「 –

+0

」完成後,你可以使用atof將字符串轉換爲浮動「....我正在尋找像這樣... thanx澄清.. :) – nobalG

1

您可以使用setlocale(LC_NUMERIC,"yourLocale")#include <locale.h>來設置小數點所需的語言環境。 (more infos here

yourLocale必須是一個有效的區域設置字符串,它可以在您的計算機上,並使用,作爲小數點,例如de_DE。您可以通過locale -a獲得可用的語言環境。

相關問題