0

次の形式でユーザーの入力を受け取ることになっている割り当てがあります。

double, char('C' for Celsius or 'F' for Fahrenheit)

それを他の一時スケールに変換します。このタスクを実行するために、次のプログラムを作成しました。

プログラム

/*
  The purpose of these program is to convert a user's input and use it in a tempurate conversion programs.
  By Paramjot Singh

  Psuedocode:

  import all needed files

  ask for user's input.

  convert user's imput into 2 varibles: a double and a char

  if the char is 'c' convert the double to farinhiet
  if the char is 'c' convert the double to celius

  display the result.
*/

 #include <stdio.h>
 int main( )
 {
    char input[7];
    printf("Welcome to the Tempurate Conversion Enter a number followed by C or F, depending on if you what to convert a Celuis Temp to Farinheit or vice versa.");
    fgets(input, 7, stdin);
    /*if (in == 'C' || in == 'c') commnented out code
    {
        int f = 9 / 5 (inint + 32);
        printf("Input ", in, " Output: " f, " F");
    }
     else (inint == 'F' || inint == 'f')
    {
        int c = 5 / 9 (inint - 32);
        printf("Input ", in, " Output: " c, " C");
    }
     else 
    {
       printf("I told you to enter c or f. Restart the program.");
    } */

     /*to test what was entered*/
     printf(input);
     return 0;
}

私の質問は、文字配列の一部を double に変換するにはどうすればよいかということです。

4

2 に答える 2

1

printf ステートメントごと:

printf("Welcome to the Tempurate Conversion Enter a number followed by C or F, depending on if you what to convert a Celuis Temp to Farinheit or vice versa.");

ユーザーが入力することを期待しているようです(たとえば):23.5c

これは、間にコンマがない:scanf("%lf%c", &inDouble, &inChar);ステートメントを意味します。` 変数名の変更に注意してください。

また、tolower(inChar)if ロジックの一部が簡素化されます。

お役に立てれば。

于 2013-08-09T23:12:22.720 に答える
0

sscanf入力を次のようにスキャンします。

sscanf(input, "%lf, %c", &inint, &in);

編集: inint少し誤解を招く名前です。あなたはダブルで読むことになっていますよね?

于 2013-08-09T17:42:36.733 に答える