gpt4 book ai didi

c++ - 在 C++ 中读取数据列、位移位、将数据打印到 .txt 文件

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

我目前正在尝试从 .txt 文件写入数据。该文件 (second.txt) 包含 5 列描述粒子的属性。

我的目的是从列中读取数据(所有列都具有相同的长度),将它们存储到一个数组中,对每个数字进行位移以便我可以使用整数而不是小数,然后将新数据写入一个新的output.txt 文件,以便在 Python 中使用它(“某种程度上”知道的唯一语言)。

到目前为止,这是我的尝试:

#include <fstream>
#include <iostream>


using namespace std;

void saveArray(double* array)
{
int length = sizeof(array);
ofstream output("output.txt");
for(int i=0;i<length;i++)
{
output<<array[i]<<endl;
}
}

int main()

{

ifstream inFile;

int cola, colb, colc, cold, cole;

inFile.open("second.txt");

inFile >> cola >> colb >> colc >> cold >> cole;

double n[cola];
double x[colb];
double y[colc];
double zeros[cold];
double r[cole];

for (int i = 0; i <= cola; ++i)
{
inFile >> n[i];

};

for (int k = 0; k <= colb; ++k)
{
inFile >> x[k];

};

for (int j = 0; j <= colc; ++j)
{
inFile >> y[j];

};

for (int z = 0; z <= cold; ++z)
{
inFile >> zeros[z];

};

for (int a = 0; a <= cole; ++a)
{
inFile >> r[a];

};

int s = 2;

n << s;
x << s;
y << s;
r << s;

saveArray(n);
saveArray(x);
saveArray(y);
saveArray(r);

return 0;

}

我将非常感谢有关如何使此代码正常工作的一些提示。

最佳答案

移动每个数字,这样我就可以得到整数而不是小数:

只需转换int(),小数部分就会消失......

你的 for 循环:

for (int i = 0; i <= cola; ++i)
// ^ the equal sign has to be removed
// since n[cola] doesn't exist

您从文件中读取的方式将读取行而不是列。既然你说我的意图是从列中读取数据(都具有相同的长度)为什么你需要几个整数:colacolb,colc...??

为了从列中读取代码,您必须按如下方式编写 for 循环:

for (int i=0; i<nrchars; i++){
inFile >> col1[i];
inFile >> col2[i];
....
inFile >> colN[i]; // Nth column
}

您还必须修改您的 saveArray(),因为:

  • sizeof(array) 不会为您提供数组的长度。 sizeof(array) 将给出您 PC 上指针的大小。
  • 您写入文件的方式同样是按行而不是按列

关于c++ - 在 C++ 中读取数据列、位移位、将数据打印到 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17574137/

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