我在使用Visual C ++。我正在给出以下命令
String nodename[100];
但是此命令出现以下错误
“错误:'System :: String':原生 数组不能包含此托管 类型“
那我现在该怎么办?
答案 0 :(得分:4)
如果您想编写本机C ++应用程序,那么您不能像错误所说的那样使用托管类型。
这意味着您必须使用C ++字符串类
#include <string> // at the top of the file
std::string nodename[100]; // where you want to declare the array
而不是System::String
。
另一方面,如果要创建托管C ++ / CLI应用程序,则不能使用本机阵列。 (但可以使用所有.NET类型)
答案 1 :(得分:3)
您没有说是否需要托管C ++,C ++ / CLI或非托管C ++
托管C ++
http://www.codeproject.com/KB/mcpp/csarrays01.aspx
C ++ / CLI
http://www.codeproject.com/KB/mcpp/cppcliarrays.aspx
非托管C ++(标准C ++)
std :: string nodename [100]; //使用STL字符串,而不是.NET String
答案 2 :(得分:0)
行。首先,它看起来像你正在使用托管 C ++(ick)。其次,您试图声明一个字符串数组(不是字符,而是整个字符串)。这真的是你想要做的吗?您确定不需要char nodename[100]
或仅String nodename
如果你真的想要一个字符串数组,看起来编译器要么你想要使用它的一个托管类矢量类型,要么只使用非托管类型来执行它。
答案 3 :(得分:0)
#include "stdafx.h"
#include <conio.h>
#include <string>
#include <iostream>
using namespace std;
int main()
{
string name[5] = {"Marco","Jenna","Alex","Dina","Allyson"};
int index = 5;
printf("List:\n\n");
for (int i = 0; i < index; i++)
{
cout << name[i] << endl;
}
_getch();
return 0;
}