问题描述
|
就像问题说的那样,我试图将多维数组传递给函数以将其打印到工程项目的文件中。不能更改输入数据的格式,因此请不要建议仅将其输入为其他数据类型。
这个特殊的函数期望一个二维数组(尽管我还有其他二维数组),在运行之前,对数组的大小一无所知。我知道我必须使用指针分别指向数组的每一行,但是我不知道将其传递给函数的语法是什么。在以下代码中,所讨论的数组为\'block \'。主要功能只是我为使其正常工作而做的一些测试示例:
#include<fstream>
using namespace std;
void of_write_blocks(string filename,string block_type[],int **block,int grid[][3],string grade_type[],int grade[][3],int n_blocks,int m[])
{
ofstream file_out(filename.c_str(),ios::app);
file_out<<\"\\nblocks\\n(\\n\";
for(int i=0;i<n_blocks;++i) {
file_out<<\" \"<<block_type[i]<<\" ( \";
for(int j=0;j<m[i];++j)
file_out<<block[i][j]<<\" \";
file_out<<\") ( \";
file_out<<grid[i][0]<<\' \'<<grid[i][1]<<\' \'<<grid[i][2]<<\" ) \";
file_out<<grade_type[i]<<\" ( \";
file_out<<grade[i][0]<<\' \'<<grade[i][1]<<\' \'<<grade[i][2]<<\" )\\n\";
}
file_out<<\");\\n\";
}
//testing example:
int main()
{
int block[6][9];
for(int i=0; i<6;++i)
for(int j=0; i<9;++j)
block[i][j] = i*j;
int grid[6][3];
for(int i=0; i<6;++i)
for(int j=0; i<3;++j)
block[i][j] = i*j;
int grade[6][3];
for(int i=0; i<6;++i)
for(int j=0; i<3;++j)
block[i][j] = i*j;
string grade_type[6] = {\"simpleGrading\"};
string block_type[6] = {\"hex\"};
int m[6] = {8};
int n_blocks = 6;
of_write_blocks(\"name\",block_type,block,grid,grade_type,grade,n_blocks,m);
}
任何帮助表示赞赏!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)