Как прочитать 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++.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В Xcode при вводе русского символа в переменную типа char, если сразу же вывести эту самую переменную, выводит \320 или что-то похожее
Помогите, пожалуйста, с одной проблемойЯ никак не могу вывести значение х
Написать программу, использующую механизм управления при помощи таблиц (управление осуществляется данными!)Нужно выделить следующие типы...