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
元素,就像访问数组一样。
我有这样的文本文件:
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
元素,就像访问数组一样。