gpt4 book ai didi

c++ - “Cannot convert char* to char(*)[95]”错误

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

我有使用数组创建ASCII表的代码。由于错误,我在编译代码时遇到了麻烦:

cannot convert 'char*' to char(*)[95] for argument '1' to void buildTable(char (8)[95], int)





cannot convert std::ofstream to char(*)[95] for argument '1' to 'void printTable(char(8)[95], int)


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

int main () {
const int MAX_SIZE = 95;
char symbols[MAX_SIZE];
int values[MAX_SiZE], int values);
void buildTable (char [][MAX_SIZE], int values);
void printTable (char [][MAX_SIZE], int values);
void output(std::fstream, std::string, double);

std::string line;

std::ofstream outputFile;
outputFile.open("ascii.log");
if(outputFile.fail()) {
std::cout << "Error opening file. \n";
return 1;
}
else {
buildTable (symbols, values, MAX_SIZE);
printTable (outputFile, symbols, values, MAX_SIZE);
}
outputFile.close();
return 0;
}

最佳答案

变量symbolschar的数组。它将衰减为指向第一个元素&symbols[0]的指针,该指针的类型为char*

您声明的函数将其第一个参数作为指向char数组的指针。指向char数组的指针与指向char的指针非常不同。

解决方案是使函数采用与传递时相同的数据类型,即指向charchar*的指针。

您还遇到其他多个问题。例如,您声明的函数(buildTableprintTable)当前被声明为该错误参数作为第一个参数,然后int值作为第二个参数。但这不是您调用这些函数的方式。您需要使用实际参数声明函数,然后按声明的方式调用它们。

相关说明:由于您使用C++进行编程,因此请勿对字符串使用字符数组,而应使用std::string。从长远来看,它将为您节省很多。

关于c++ - “Cannot convert char* to char(*)[95]”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50441266/

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