2016-04-26 4 views
0

У меня есть текстовый файл, который выглядит следующим образом:C++ возвращает последний элемент в массиве

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». Я получаю последнее слово в массиве

ответ

0

Я думаю, что немного больше деталей в порядке. Например, вы говорите «покажите мне 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(' '); 
} 

Таким образом, вы аккумулировать все «слов» в один большой список, что доступно за пределами цикла. Вы можете получить доступ к List элементам с оператором [], как и массив.

Смежные вопросы