我无法在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表单应用程序。不确定它是否有任何区别。
答案 0 :(得分:2)
您好像不包括string
和/或using std::string
。以下作品:
#include <string>
int main()
{
std::string bands[] = { "Rammstein", "Slipknot", "Franz Ferdinand", "Gorillaz" };
}
如果您正在使用动态大小的字符串集合,那么您应该优先于C样式数组std::vector<std::string>
。如果您需要固定的尺寸,如果您没有C ++ 11,请查看std::array<std::string, N>
或tr1
或boost
个替代品。
答案 1 :(得分:1)
您要么未包含#include <string>
,要么需要将std::
命名空间限定符添加到您的类型中:
std::string bands[] = { ... };
首选using namespace std;
。
此外,你可能应该更喜欢使用std::vector
而不是普通的旧C风格数组:
std::vector<std::string> bands = { ... };