Записать данные из текстового файла проекта в массив 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