我正在寫一個函數,它有一個字符串的二維數組作爲輸入參數。我初始化字符串,將它傳遞給函數,但是當我試圖打印數組時什麼都沒有發生。它說數組的長度是0.我所有的函數都存儲在一個頭文件中。這裏是我的代碼:多維字符串C++
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
int c,i,j,fx,fy;
int color,fields,rows,anim,speed;
string opt[5][50];
string popt[5][50]={
{"caption","asdf","safd","asf"},
{"caption1","dsafa","asdf","asdf"},
{"caption2","asdf","asdf","asdfas"},
{"caption3","sadfa","asdfs","fasdfa"}};
void ini(int focus_text_color, int n_fields,int n_rows, string options[][50], bool animation=false, int animation_speed=10)
{
color=focus_text_color;
fields=n_fields;
for(i=1;i<fields+1;i++)
{
for(j=1;j<rows+1;j++)
{
opt[i][j]=options[i][j];
}
}
}
int drawh()
{
system("cls");
for(i=0;i<fields;i++)
{
for(j=0;j<rows;j++)
{
cout<<opt[i][j]<<setw(opt[i+1][j].length()+5);
}
}
return 0;
}
void main()
{
ini(LIGHTRED,4,4,popt);
drawh();
}
注:這是代碼,所以我沒有測試過,和我的英語不好對不起的一部分:d
從@奧利的評論
你爲什麼要這麼做'的(i = 1; i
2011-05-23 07:37:43
-1:你有沒有嘗試在調試器中逐句通過你的代碼?或者添加'printf' /'cout'跟蹤語句來查找變量的值,或者循環遍歷多少次? – 2011-05-23 07:39:21
爲什麼你的初始化器不匹配你的數組的維度? – 2011-05-23 07:39:29