gpt4 book ai didi

C++ 作业函数错误

转载 作者:行者123 更新时间:2023-11-28 08:11:03 24 4
gpt4 key购买 nike

我正在开发一个类程序,该程序从文件中读取数据、处理数据并写入另一个文件。我们被要求在程序中使用两个函数,我相信我的程序不能正常运行是因为我的函数有一些错误。

首先,让我描述一下输入文件,然后我将添加我的代码。输入文件以标记号开头,让程序知道要读取的行数。接下来的每一行都包含 12 个数字,代表 YYYYMMDDHHMM 形式的日期和 Xtemp 形式的温度读数,其中 x 是 c 或 f(例如 C17.5 或 F64.12)。我们的输出应该将温度转换为摄氏温度(如果尚未转换),那么每一行都应以“17.5 C --- 记录于 04/12/2009”的格式出现,依此类推。

到目前为止,这是我的代码。就像我说的,我认为问题出在功能上。

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>

using namespace std;

void timeConverter(char timeStamp[]);
float tempConverter(float);

int main()
{
ifstream fin;
ofstream fout;
int endcycler, cycler;
char timeStamp[11];
char tempUnit;
float tempData;


fin.open("aquarenadata.dat");
if (!fin)
{
cout<<"Error opening input file"<<endl;
system("pause");
return -1;
}

fout.open("formatteddata.dat");

fin >> endcycler;
cycler = 0;

while (cycler < endcycler)
{
fin >> timeStamp;
fin >> tempUnit;
fin >> tempData;

if (tempUnit == 'C' || tempUnit == 'c')
cout << tempData << " C --- recorded on ";
else if (tempUnit == 'F' || tempUnit == 'f')
{
tempData = tempConverter(tempData);
cout << tempData << " C --- recorded on ";
}
else
{
cout <<"Invalid temperature scale"<<endl;
system("pause");
return -2;
}
void timeConverter();
cycler++;

}


fin.close();
fout.close();
system("pause");
return 0;
}


void timeConverter (char timeStamp[])
{
cout<<timeStamp[4]<<timeStamp[5]<< "/" <<timeStamp[6]<<timeStamp[7]<< "/"<<timeStamp[0]<<timeStamp[1]<<timeStamp[2]<<timeStamp[3]<< " at " <<timeStamp[8]<<timeStamp[9]<<timeStamp[10]<<timeStamp[11]<<endl;

}

float tempConverter (float tempData)
{
float result;
result = (tempData - 32) * (5 / 9);
return result;
}

最佳答案

至于显示日期的问题,可能是因为您实际上并未调用 timeConverter 函数。

代替

void timeConverter();

尝试

timeConverter(timestamp);

您可能还想确保输入的格式正确,即时间戳的实际长度至少为 8

对于转换中的错误,如果您给我们它为某些输入返回的实际值会更容易。

关于C++ 作业函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com