gpt4 book ai didi

c++ - 需要将 ifstream 输入文件转换为我可以循环和解密的格式

转载 作者:太空宇宙 更新时间:2023-11-04 14:20:06 25 4
gpt4 key购买 nike

我将有一个数据文件,将按以下方式组成。第一行将是文件中的行数 [N]下一行和每个后续行将具有三个值。如果值三是 >0那么该行项目是一个三角形。如果值二和值三是 <0那么该行项目是一个圆圈。如果只有值三是 <0那么该行项目是一个矩形。

一旦我将它们分成圆圈,我就可以编写算法来操纵这些项目,矩形和三角形,但问题是我不知道该怎么做。

这是我到目前为止编写的代码。

#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

// MAIN
int main(void)
{
int N=0;
ifstream Hinfo;
// ........................................................
Hinfo.open("Holes");
if (Hinfo.fail())
{
cerr << "Error: open input file error" << endl;
exit(-1);
}
else
cout << "Success: input files opened" << endl;
// ........................................................
Hinfo >> N;
float A[N];
float B[N];
float C[N];
float Rec[];
float Cir[];
float Tri[];
// ........................................................
for(int i=0; i<N; i++)
Hinfo >> A[i] >> B[i] >> C[i];
Hinfo.close();
}

我真的不知道下一步该做什么,或者我到目前为止所做的是否是正确的道路采取。

接下来我在想这个是为了找到矩形、三角形和圆形。

for (i=0; i<N; i++)
{
if (C[i] < 0)
{
if (B[i] < 0)
A[i] >> B[i] >> C[i] >> Circle[];
else
A[i] >> B[i] >> C[i] >> Rectangle[];
}
else
A[i] >> B[i] >> C[i] >> Triangle[];
}

我能做到吗?请帮忙,我很难管理所有这些阵列。有没有更简单的方法将所有这些数据分成三角形、圆形和矩形数组?请记住,我是初学者,所以复杂或高级的语法会让我感到困惑脆弱的 n00b 头脑

谢谢,卢克。

最佳答案

我会做的是编写一个结构来保存单个数据条目,可能是这样的:

const int TRIANGLE = 1;
const int CIRCLE = 2;
const int RECTANGLE = 3;
struct Entry
{
float points[3];
int type;
};

这样,每次读取一行值时,您都可以将它们放入一个新的 Entry 中并相应地设置类型。然后你只需要一个数组或 vector 来保存条目。或者您可以为每个条目类型创建一个数组/vector 。

std::vector<Entry> Entries;
for(int i=0; i<N; i++)
{
Entry e;
Hinfo >> e.points[0] >> e.points[1] >> e.points[2];
if( e.points[2] > 0 )
e.type = TRIANGLE;
else if( e.points[2]<0 && e.points[1]<0)
e.type = CIRCLE;
else if( e.points[2]<0 && e.points[1]>=0 && e.points[0]>=0)
e.type = RECTANGLE;
Entries.push_back(e);
}

按照这些思路应该可以做到这一点。

关于c++ - 需要将 ifstream 输入文件转换为我可以循环和解密的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8289789/

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