以下是帮助说明我的问题的屏幕截图:
我正在运行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);
}
答案 0 :(得分:7)
cout << "Fahrenheit Temperature = " <<(fahrenheitTemp)<<
cout << "Celsius Temperature = " <<(celsiustemp)<<
cout << "</body></html>\n";
奇怪的字符是因为这是一个长语句,而不是三个单独的语句。它打印cout
的地址两次!
cout << "Fahrenheit Temperature = " <<(fahrenheitTemp)<< "<br/>\n"
<< "Celsius Temperature = " <<(celsiustemp)
<< "</body></html>\n";
答案 1 :(得分: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 ++中的加法和减法,与科学计数法相同。
答案 2 :(得分:-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;
}