-1

私の問題を説明するのに役立つスクリーンショットを次に示します。

スクリーンショット

私はApacheサーバーを実行しています。ここで、ユーザーが華氏の数値を html ページに入力すると、このプログラムに移動して変換が行われます。ご覧のとおり、正しく計算されていません。華氏の数字を取り、何らかの理由で数字や文字を追加していますか?? とにかく、これを機能させるためにコードを編集するのを手伝ってくれる人はいますか? 本当にありがとう!!

#include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <windows.h>

    using namespace std;





    //(Include the c++ getvar comment block and code here)

    int getvar(char *var, char *dest, char *stream)
    {  
        char *vptr;
        int size, i=0, j=0, hex; /* ptr+i to src, ptr+j to dest */ 

        vptr=strstr(stream, var);  

        if(vptr) ; 
        else return(1); /* 1 for a checkbox thats off */

        if((vptr==stream)||(*(vptr-1)=='&')) ; 
        else return(-1); /* -1 for a var that appears in error */

        size=(int) strlen(var)+1; /* +1 accounts for the = */

        while(*(vptr+size+i)!='&') 
        {      
                if(*(vptr+size+i)=='+') /* output a space */           
                    *(dest+j)=' ';     
                else if(*(vptr+size+i)=='%') /* hex character */           
                        {              
                            sscanf(vptr+size+i+1,"%2x",&hex);              
                            *(dest+j)=(char)hex;               
                            i+=2;          
                        }      
            else *(dest+j)=*(vptr+size+i);     
                i++; j++;  
            }  
        *(dest+j)='\0';
            return(0);
}
4

3 に答える 3

7
cout << "Fahrenheit Temperature = " <<(fahrenheitTemp)<<
cout << "Celsius Temperature = " <<(celsiustemp)<<
cout << "</body></html>\n";

奇妙な文字は、これが 3 つの別々のステートメントではなく、すべて 1 つの長いステートメントであるためです。coutさんのアドレスを 2 回印刷しています。

cout << "Fahrenheit Temperature = " <<(fahrenheitTemp)<< "<br/>\n"
     << "Celsius Temperature = " <<(celsiustemp)
     << "</body></html>\n";
于 2013-04-21T00:56:49.273 に答える
1

余分な文字の問題についてはわかりませんが、演算の順序が原因で式が間違っています。

あなたが持っている:

celsiustemp = fahrenheitTemp - 32.0 * (5.0/9.0);

これは次と同等です。

 celsiustemp = fahrenheitTemp - (32.0 * (5.0/9.0));

これは正しい変換式ではありません。

以下を使用する必要があります。

 celsiustemp = (fahrenheitTemp - 32.0) * (5.0/9.0);

C++ では、指数表記と同様に、乗算および除算演算子が加算および減算よりも優先されます。

于 2013-04-21T03:57:09.510 に答える
-1
#include<iostream>
#include<string>
#include<math.h>
#include<iomanip>
using namespace std;

double ferentocelsious(double feren)
{
    return 5 * (feren - 32) / 9;
}
int main(void)
{
    double ferenhit;
    cout << "Enter the temprature in ferenhit:\t";
    cin >> ferenhit;
    cout << ferenhit << " ferenhit temprature to celcious is:  " << ferentocelsious(ferenhit) << endl;
    return 0;
}
于 2014-10-23T16:58:58.583 に答える