0
我正嘗試使用讀取方法讀取溫度和華氏度或攝氏度字符的值。在編程手冊中,我找不到任何關於讀取方法的內容。我也必須在我的主程序中更改我的for循環來遍歷一系列值,但這也不起作用。這是我的代碼:讀取C++中溫度類的類中的方法
#include <iostream>
using namespace std;
// Interface for Temperature class
class Temperature
{
public:
Temperature();
Temperature(const Temperature & Temp);
~Temperature();
double getCelsius() const;
double getFahrenheit() const;
void setCelsius(double Temp);
void setFahrenheit(double Temp);
void print();
void read();
private:
static const double ABSOLUTE_ZERO = -273.15;
double CelsiusTemperature;
};
// Implementation of Temperature class
void Temperature::print()
{
cout << getFahrenheit() << "F = " << getCelsius() << "C\n";
}
void Temperature::read()
{
double num;
char C;
cin >> num >> C;
cin >> num >> C;
if (C != 'F' || C != 'f' || C != 'C' || C != 'c')
cout << " ";
}
Temperature::Temperature()
{
CelsiusTemperature = 0;
}
Temperature::Temperature(const Temperature & Temp)
{
CelsiusTemperature = Temp.CelsiusTemperature;
}
Temperature::~Temperature()
{
}
double Temperature::getCelsius() const
{
return CelsiusTemperature;
}
double Temperature::getFahrenheit() const
{
return 9.0 * CelsiusTemperature/5.0 + 32.0;
}
void Temperature::setCelsius(double Temp)
{
CelsiusTemperature = Temp;
if (CelsiusTemperature < ABSOLUTE_ZERO)
CelsiusTemperature = ABSOLUTE_ZERO;
}
void Temperature::setFahrenheit(double Temp)
{
CelsiusTemperature = (Temp - 32.0) * 5.0/9.0 ;
if (CelsiusTemperature < ABSOLUTE_ZERO)
CelsiusTemperature = ABSOLUTE_ZERO;
}
// Program to test Temperature class
int main()
{
Temperature Start;
Temperature End;
Temperature Temp;
cout << "Enter start temperature: ";
Temp.read();
cout << "Enter end temperature: ";
Temp.read();
cout.precision(3);
for (F = Start; F <= End; F++)
{
Temperature Temp;
Temp.setFahrenheit(F);
Temp.print();
}
return 0;
}
我應該如何初始化開始和結束? – savannaalexis