@Lexluter20

Как сделать чтение информации из файла в несколько массивов?

Есть файл .txt формата:
name,country,quantity, price
apple,Russia,50,100
coconut,South africa,10,300

нужно распределить информацию в 4 vector'а, чтобы индекс каждого наименования совпадал со своей строчкой(то есть у apple, Russia, 50, 100 были под одним индексом)

Можно ли будет с помощью функции добавлять в массив ещё элементы, например, banana italy 20 200, а далее, таким же образом выписать в другой файл?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@dima20155
you don't choose c++. It chooses you
Что-то вроде этого. Чтение и запись в файл уже не составляет труда добавить.
#include <iostream>
#include <sstream>
#include <vector>

struct FunDataBase {
    FunDataBase& operator<<(const std::string& line) {
        std::vector<std::string> temp_arr;
        std::istringstream iss(line);
        std::string str;
        while ( getline(iss, str, splitter)) {
            temp_arr.push_back(str);
        }
        arr.push_back(temp_arr);
        // assert that number of elements is ok
        return *this;
    }
    void printDB() {
        for (auto i : arr) {
            for (auto j : i) {
                std::cout << j << " ";
            }
            std::cout << std::endl;
        }
    }
    std::vector<std::vector<std::string>> arr;
    char splitter = ',';
};

int main() {
    // Write C++ code here
    FunDataBase f;
    std::string temp[] {"apple,Russia,50,100", "coconut,South africa,10,300"};
    f << temp[0];
    f << temp[1];
    f.printDB();
    return 0;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы