Вопрос по работе с данными извлеченными из файла

Подскажите пожалуйста, как лучше скачать данные из файла и разнести их в массив строк?

char List_Chr[5000];                  // массив символов для сохранения 
    ifstream file2 ("text.txt");           // зыпрос на открытие файла 
    file.getline(List_Chr, 5000, 2);      // считать в созданный массив
    file.close();

выходит массив символов который можно перевести в строки,

string List = List_Chr;

однако строка тут одна, и все находится в одном месте. И вопрос, как разбить этот String на массив строк(до "\n") чтобы позже работать с каждой строкой в отдельности. Если разбивать поиском символа переноса,

int Marks_New_str[200];     // массив чисел для отметок о нахождении окончания строк в массиве симолов
 int Counter = 0;                      // счетчик для цикла
    for (int i = 0; i < 5000; i++)        // определить все окночания строк в масиве
        if (List_Chr[i] == '\n'){         // если символ из массива = \n
            Marks_New_str[Counter] = i;   // то в массиве int делается отметка том какой он по счету
            Counter++;                    // счетчик переставляет место сохранения в массиве меток
        }

а после посимвольно воссоздавать каждую строку через цикл for от одного символа переноса до другого, получается крайне долго если колличество строк больше нескольких. А больше в голову что то ничего не лезет.

Ну почему всё так сложно? Почему редкий человек озадачивается почитать доку по стандартной библиотеке и STL?

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

int main() {
    vector<string> strs;
    string s;
    ifstream ifs("main.cpp");
    while (ifs) {
        getline(ifs, s);
        if (ifs)
            strs.push_back(s);
    }
    ifs.close();

    for (const auto & s : strs) {
        cout << s << endl;
    }
}

sam, большое спасибо что указал на циклы Foreach, не изучал еще их оч. интересно. Да и то что с векторами я не подумал что можно сделать. Еще раз спасибо))))

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.