0

由于未知原因,我无法在 C++ 上定义字符串数组。我需要从这个数组中随机获取一个字符串。

一直在尝试以下:

string bands[] = { "Rammstein", "Slipknot", "Franz Ferdinand", "Gorillaz" };

我收到以下错误:

error C2146: syntax error : missing ';' before identifier 'bands'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C3845: 'SpurdoSparde::Form1::bands': only static data members can be initialized inside a ref class or value type

提醒一下,我正在使用 Windows 窗体应用程序。不确定它是否有任何区别。

4

2 回答 2

2

看来您不包括string和/或不包括using std::string. 以下作品:

#include <string>

int main()
{
  std::string bands[] = { "Rammstein", "Slipknot", "Franz Ferdinand", "Gorillaz" };
}

如果您追求动态大小的字符串集合,您应该更喜欢std::vector<std::string>C 样式的数组。如果您需要固定大小,如果您没有 C++11,请查看std::array<std::string, N>ortr1或替代方案。boost

于 2013-02-05T16:43:49.927 回答
1

您没有包含#include <string>或需要将std::命名空间限定符添加到您的类型:

std::string bands[] = { ... };

更喜欢这个而不是做using namespace std;

此外,您可能更喜欢使用 astd::vector而不是普通的旧 C 样式数组:

std::vector<std::string> bands = { ... };
于 2013-02-05T16:43:50.190 回答