c++ returns 数组中的最后一个元素

c++ returns last element in array

我有这样的文本文件:

word1 word2 word3 word4
word5 word6 word7 word8
word9 word10..

然后我打开文件并将所有行读入数组,然后我 运行 循环将所有文本单词拆分为单独的元素(所以数组看起来像这样 "myarray = {"word1","word2","word3","word4","word5...}")

String^ fileName = "text.txt";
cli::array<String^> ^ myarray= File::ReadAllLines(fileName);
for (int a = 0; a < myarray->Length; ++a)
{
cli::array<String^> ^ words = myarray[a]->Split(' ');
}

我的问题是,在 运行 调用代码并告诉程序显示单词 [0] 而不是 "word1" 的输出后,我得到了数组

中的最后一个单词

我认为需要更详细一些。例如,您说 "show me element[0]...",但在名为 element 的代码中没有任何内容。

话虽如此,您的内部循环每次都会创建一个新数组,因此它只会保存文件的最后一行,当然会拆分为标记。

也许试试这个:

String^ fileName = "text.txt";
cli::array<String^> ^ myarray= File::ReadAllLines(fileName);
List<String ^> ^ words = new List<String ^>();
for (int a = 0; a < myarray->Length; ++a)
{
    words->AddRange(myarray[a]->Split(' ');
}

这样,您就可以将所有 'words' 累积到一个大列表中,该列表在循环外可用。您可以使用 [] 运算符访问 List 元素,就像访问数组一样。