gpt4 book ai didi

c++ - 错误 : cannot convert ‘double*’ to ‘double’ for argument ‘1’ and error: invalid types ‘double[double]’ for array subscript

转载 作者:行者123 更新时间:2023-11-28 04:56:15 29 4
gpt4 key购买 nike

我正在尝试引入部分数据文件来填充数组,用户尝试了三次输入正确的数据文件名。我一再遇到这些错误。我知道像 arr 这样的数组只是一个指向内存块的指针。

#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

void extract (double arr ,int n, double& i, int& error);

int main () {
double arr[256];
int n=256;
double i=0;
int error=0;
extract (arr,n,i,error);
return 0;
}

void extract (double arr, int n, double& i,int& error){
string infile;
string data="data.txt";cout <<"enter data file name/n";
cin >> infile;
while ((error<3) && (data.compare(infile) != 0)){
error++;
cout << "error in input. Please try again/n";
cin >> infile;
}
if (error<3){
ifstream fin;
fin.open("data.txt");
while ((i<n) && (fin >> arr[i])){
i++;
cout << arr[i] << " ";
}
fin.close();}
}

错误发生在将数据文件中的数据输入到数组的 while 循环中。将 Double i 更改为 int i 替换了旧问题

error: invalid types ‘double[int]’ for array subscript

这是我的数据文件848778169436879350226328916064274127733712696830833163246836303个235970689457124330742220853899251671142792815774637197826个268528376个4730145825968346156835654451889777989854个525510033617769401327879540

最佳答案

更改
void extract (double arr ,int n, double& i, int& error);
void extract (double* arr ,int n, double& i, int& error);extract 的定义和声明中功能

编辑:另一个错误是因为 double类型变量用作数组索引,在您的例子中为 iextract函数,所以要么改变 i 的类型至 int或使用 i = static_cast<int>(i)在提取功能的最开始,我更喜欢第一种方式。

这是 link您的代码以及所做的更改,它可以编译并完美运行。

希望对你有帮助

关于c++ - 错误 : cannot convert ‘double*’ to ‘double’ for argument ‘1’ and error: invalid types ‘double[double]’ for array subscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067826/

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