Как прочитать getline с переводом строки... а то приходится самому добавлять \n.
#include <iostream>
#include <fstream>
#include <string>
void FuncReadFile(char* path, std::string &text)
{
//Переменная для чтения по указанному пути
std::ifstream FileInput(path);
std::string str;
while (!FileInput.eof())
{
getline(FileInput, str);
text = text+ str + "\n";
}
}
int main()
{
setlocale(LC_ALL, "RUS");
std::string text;
char* path = "input.txt";
FuncReadFile(path, text);
std::cout << text<<std::endl;
std::cout << "END" << std::endl;
system("pause");
}
getline (FileInput,str,'\0');
Чтобы прочитать файл целиком без преобразований (таких как \r\n -> \n или преобразований, связанных с текущей локалью), можно использовать read() метод:
ifstream file(filename, ios::in | ios::binary | ios::ate);
const ifstream::pos_type file_size = file.tellg();
vector<char> data(file_size);
file.seekg(0, ios::beg);
file.read(&data[0], file_size); // C++11
Результат в векторе data. Полный пример кода. Можно также использовать строку string data(file_size, '\0'); вместо вектора.
Вот сравнение производительности нескольких методов чтения файла в C++, используя разные компиляторы, платформы: Reading in an entire file at once in C++.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости