Visual c++ visualc&x2B+;声明字符串数组 我在Visual C++中工作。我发出以下命令 String nodename[100];

Visual c++ visualc&x2B+;声明字符串数组 我在Visual C++中工作。我发出以下命令 String nodename[100];,visual-c++,Visual C++,但是这个命令给出了以下错误 错误:“系统::字符串”:本机 数组不能包含此托管 类型“ >现在我该怎么办?< /p> < p>如果你想编写一个本地C++应用程序,那么你不能像错误地说,使用托管类型。 这意味着你必须使用C++字符串类, #include <string> // at the top of the file std::string nodename[100]; // where you want to declare the array #包括//在文件顶部 std

但是这个命令给出了以下错误

错误:“系统::字符串”:本机 数组不能包含此托管 类型“


>现在我该怎么办?< /p> < p>如果你想编写一个本地C++应用程序,那么你不能像错误地说,使用托管类型。

这意味着你必须使用C++字符串类,

#include <string> // at the top of the file
std::string nodename[100]; // where you want to declare the array
#包括//在文件顶部
std::字符串节点名[100];//要在其中声明数组
而不是
System::String


另一方面,如果要创建托管C++/CLI应用程序,则不能使用本机阵列。(但是可以使用所有.NET类型)

您没有说您是否需要管理C++、C++ +CLI或非托管C++

托管C++

C++/CLI

非托管C++(标准C++)< /P>


std::字符串节点名[100];//使用STL字符串,而不是.NET字符串

确定。首先,看起来你使用的是管理C++(IK)。其次,您试图声明一个字符串数组(不是字符,而是整个字符串)。这真的是你想做的吗?您确定不想要类似于
char nodename[100]
的内容,还是只想要
String nodename

如果您确实需要字符串数组,那么编译器可能希望您使用其托管向量类型之一来完成此操作,或者仅使用非托管类型来完成此操作。

\include“stdafx.h”
#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;
}
#包括 #包括 #包括 使用名称空间std; int main() { 字符串名[5]={“Marco”、“Jenna”、“Alex”、“Dina”、“Allyson”}; int指数=5; printf(“列表:\n\n”); 对于(int i=0;i如果您不知道什么是本地数组和托管类型,那么您可能根本不需要使用托管C++来代替,而是使用C ^代替:)上面的命令给出了以下错误“STD”:不是类或命名空间名称,而是没有正确添加<代码>包含< /COD>部分。将它放在文件的最上端。它是字符串,而不是STRI。N.G.HI想使用非托管C++ STD::String NODENAMEY(100);这个命令即使使用了“包括String .h”也“STD”:不是一个类或命名空间NAMECAN,您对您的答案进行了详细说明。