摄氏到华氏和华氏到摄氏表 (C++)
Posted
技术标签:
【中文标题】摄氏到华氏和华氏到摄氏表 (C++)【英文标题】:Celsius to Fahrenheit and Fahrenheit to Celsius table (C++) 【发布时间】:2021-06-17 13:07:30 【问题描述】:我正在制作一个包含摄氏度值的表格,这些值可以转换为华氏度,反之亦然。
这是我希望代码输出的内容:
Celsius Fahrenheit | Fahrenheit Celsius
40.0 104.0 | 120.0 48.89
39.0 102.2 | 110.0 43.33
问题在于,我无法将第二部分输出到表格的另一边。
这是代码输出的(不是我想要的):
Celsius Fahrenheit | Fahrenheit Celsius
40.0 104.0 |
39.0 102.2 |
120.0 48.89
110.0 43.33
这是我的代码
#include <iostream>
#include <math.h>
#include <string>
#include <iomanip>
using namespace std;
double celsiusToFahrenheit(double f1);
double fahrenheitToCelsius(double c2);
int main()
double f1;
double c2;
cout<< left <<setw(10)<< left << "Celsius" << right<< setw(10) << "Fahrenheit | " << setw(10) << "Fahrenheit" << right << setw(10)<< "Celsius"<< endl;
cout<< left<< setw(10)<< left << celsiusToFahrenheit(f1) << right << setw(10)<< fahrenheitToCelsius(c2)<< endl;
return 0;
double celsiusToFahrenheit(double f1)
for(double c1 = 40.0; c1 > 30.00; c1--)
f1 = (c1 * (9.0/5.0)) + 32.0;
cout<< left <<setw(10)<< left << c1<< right<< setw(10) << f1 << right<<" | "<< endl;
return f1;
double fahrenheitToCelsius(double c2)
for(double f2 = 120.0; f2 > 29.00; f2--)
c2 = ((5.0/9.0) * (f2 - 32.0));
cout<< left <<setw(10)<< left << f2<< right<< setw(10) << c2 << right<< endl;
return c2;
【问题讨论】:
提示:做一个转换函数,接受一个温度并返回一个转换值。这两个人做了一大堆其他事情,混淆了他们的责任。您真正需要的是一个绘制表格行的演示器函数,另一个执行特定转换的对,以及可能需要一个范围的第三个表格生成器函数,一个转换器函数(理想情况下是std::function
或 lambda),然后发出桌子。
@Andrew Tang:您是关于华氏温度和摄氏度的问题,还是关于“如何在流中使用 left、right、setw(10) 和 endl 来绘制表格?”的问题。请换个问题。背景:建议编辑的队列已满。因此,我无法更改有关 *** 的问题及其技术原因。谢谢。
【参考方案1】:
在正在打印的东西中进行打印可能是这里出了问题的地方,尤其是这些函数中的endl
。
你提前切断了线路。快速解决方法是摆脱它:
cout<< left <<setw(10)<< left << c1<< right<< setw(10) << f1 << right<<" | ";
但这里的问题是您在打印这些内容的过程中进行迭代,这会导致大量的结构问题。
【讨论】:
以上是关于摄氏到华氏和华氏到摄氏表 (C++)的主要内容,如果未能解决你的问题,请参考以下文章