#include<string>
#include<iostream>
using namespace std;
struct letter
{
string lines[5];
}s[26];
int main()
{
//struct letter s[25];
s[0].lines = // error while initializing here
{
"..*..",
".*.*.",
".***.",
".*.*.",
".*.*."
};
s[1].lines[5] = // also if I do this
{
".**..",
".*.*.",
".***.",
".*.*.",
".**.."
};
return 0;
}
点击此处: Ideone Link
我无法弄清楚这段代码有什么问题。 我尝试了很多方法。我甚至将结构成员更改为2d char数组,但是遇到了同样的问题。请帮忙!
编辑信息:
prog.cpp:在函数'int main()'中:
错误:在'{'标记之前预期的primary-expression
错误:预期';'在'{'标记之前
错误:在'{'标记之前预期的primary-expression
错误:预期';'在'{'标记之前
答案 0 :(得分:0)
初始化s[26]
数组的方式仅适用于声明。
以下是在代码中执行此操作的方法:
struct letter
{
string lines[5];
};
letter s[26] =
{
{
"..*..",
".*.*.",
".***.",
".*.*.",
".*.*."
},
{
".**..",
".*.*.",
".***.",
".*.*.",
".**.."
}
};
或者甚至更好,如果你真的不需要letter
结构:
string letter[26][5] =
{
{
"..*..",
".*.*.",
".***.",
".*.*.",
".*.*."
},
{
".**..",
".*.*.",
".***.",
".*.*.",
".**.."
}
};