Записать данные из текстового файла проекта в массив C++

У меня есть В ПРОЕКТЕ есть текстовый файл в папке с ресурсами .Мне надо считать с него данные и записать в переменную. Нужно чтобы работало У ВСЕХ. Система Windows. В файле хранятся важные данные и создавать его на других системах не ахти. Нужно,чтобы при каждом запуске программы данные считывались из проекта https://prnt.sc/uscgwm


Ответы (2 шт):

Автор решения: alex
#include <iostream>
#include <vector>
#include <fstream>
#include <string>

bool GetFileToArray(std::string FileName, std::vector<std::string> &VectorOfSting){

    // Открываем файл
    std::ifstream in(FileName.c_str());

    if(!in){
        std::cerr << "Не удается открыть файл : " << FileName << std::endl;
        return false;
    }

    // Считываем следующую строку из файла до конца.
    std::string str;
    while(std::getline(in, str)){
        // если размер строки больше 0 то пушим в массив VectorOfSting
        if(str.size() > 0){
            VectorOfSting.push_back(str);
        } else {
            std::cerr << "Файл пуст" << std::endl;
        }
    }

    in.close();
    return true;
}

int main() {

    std::vector<std::string> VectorOfSting;

    bool result = GetFileToArray("C:\\Drive\\Cpp\\example.txt", VectorOfSting);

    if(result){

        for(std::string & line : VectorOfSting)
            std::cout <<line << std::endl;
    }

    return 0;
}

→ Ссылка
Автор решения: vp_arth
# cat data.txt
Hello world
# objcopy --input binary \
          --output elf32-i386 \
          --binary-architecture i386 data.txt data.o

# gcc main.c data.o && ./a.out
Hello world

# cat main.c
#include <stdio.h>

extern char _binary_data_txt_start;
extern char _binary_data_txt_end;

main()
{
    char*  p = &_binary_data_txt_start;

    while ( p != &_binary_data_txt_end ) putchar(*p++);
}

Источник: Embedding a File in an Executable, aka Hello World, Version 5967 by Mitch Frazier on June 12, 2008

→ Ссылка