我能把程序读成'。 '如果用户放','?使用C.

时间:2013-01-05 16:25:27

标签: c scanf

我有一个代码,用户必须为油漆的升价...但它只接受“2.50”这样的价格,如果用户放“2”,我可以让程序将逗号转换为点,50" ?使用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);

2 个答案:

答案 0 :(得分:1)

将输入收集到字符串并执行操作..

遍历字符串的每个字符,如果您遇到,,请将其替换为.

在遍历时将遍历的字符放入其他字符串,找到,后,将其替换为.

此过程可能很长,但可能有助于满足您的要求。

答案 1 :(得分:1)

您可以使用setlocale(LC_NUMERIC,"yourLocale")中的#include <locale.h>为小数点设置所需的区域设置。 (more infos here

yourLocale必须是您计算机上可用的有效区域设置字符串,并使用,作为小数点,例如de_DE。您可以使用locale -a获取可用的区域设置。