我正在学习cpp。我今天在mac的命令行上通过g ++编译的正常模式编写了一个程序。我也一直在仔细检查我在 XCode 中的工作,发现一行代码导致代码无法在 IDE 中编译
该行是:
string result[2] = subject[rand() % nsubject];
其中 subject 是一个多维字符串数组,其中它的每个成员都是两个字符串的数组,nsubject 是一个保存数组长度的 int。Xcode 说:数组初始化器必须是初始化器列表,但如前所述,g++ 编译时没有任何抱怨。所以,作为语言的新手,我认为这个陈述可能是糟糕的形式。一定有某种方法可以让 XCode 接受,是吗?
这是一个可以证明问题的片段,从上下文中删除没有多大意义,但以下在我的终端上编译得很好,但无法在 xcode 中构建:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main(){
string subject[][2] = {
{"a", "b"},
{"c", "d"},
{"e", "f"},
{"g", "h"},
{"i", "j"}
};
int nsubject = sizeof subject / sizeof subject[0];
srand(static_cast<unsigned>(time(0)));
string result[2] = subject[rand() % nsubject];
cout << result[0] << endl; //should return 'a','c','e','g' or 'i'
return EXIT_SUCCESS;
}