Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Чтение файла целиком в std::string - C++

04.12.2012, 10:43. Просмотров 1356. Ответов 5
Метки нет (Все метки)

Как лучше сделать? Прочитать fread в char*, а потом перегнать, или открыть потоком и прочитать построчно? Символы \n и \r желательны, но не критичны. Как будет стабильней? Есть ли у потока файлового ввода eof? А может у него есть готовая функция чтения всего файла?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2012, 10:43     Чтение файла целиком в std::string
Посмотрите здесь:

C++ Чтение из файла строки целиком
string чтение из файла C++
C++ Чтение из файла в переменную типа string
std::string -> std::wstring C++
Ошибка: отсутствует оператор ">>"; типы операндов: std::istream >> std::string C++
C++ std::string + std::remove
C++ Чтение из файла в массив string
C++ Сериализация объектов с полями std::string + запись/чтение в файл
C++ Чтение бинарного файла в поток std::ifstream и вывод в другой бинарный файл std::ofstream (создание копии)
Чтение из файла в массив структур (ошибка со string) C++
C++ 'string' : undeclared identifier, std::string
C++ Считать текст из файла в строку типа std::string (файловый ввод/вывод)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
6677 / 3858 / 511
Регистрация: 29.11.2010
Сообщений: 10,217
04.12.2012, 10:51     Чтение файла целиком в std::string #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <iterator>
 
int main()
{
    std::string str;
    std::ifstream ifs("text.txt");
    ifs >> std::noskipws;
    std::copy(std::istream_iterator<char>(ifs), std::istream_iterator<char>(), std::back_inserter(str));
    std::cout << str;
    return 0;
}
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.12.2012, 11:01  [ТС]     Чтение файла целиком в std::string #3
Я не хочу открывать в конструкторе, мне удобнее собрать все декларации в начале функции, а перед открытием должна быть валидация параметров-указателей, поэтому открывать буду методом open. Есть ли при этом какая нибудь возможность определить, открылся ли файл и существует ли он вообще? Или для этого надо привлекать бинарные функции вроде CreateFile?
MrGluck
Ворчун
Эксперт CЭксперт С++
6677 / 3858 / 511
Регистрация: 29.11.2010
Сообщений: 10,217
04.12.2012, 11:06     Чтение файла целиком в std::string #4
C++
1
2
std::ifstream ifs("text.txt");
if (!ifs) return 1;
либо
C++
1
2
3
std::ifstream ifs("text.txt");
ifs.open("text.txt");
if (!ifs) return 1;
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.12.2012, 11:13  [ТС]     Чтение файла целиком в std::string #5
Пишет:
C:\tsserver\Projects\cpp\codeblocks\Collada\Collada.cpp|45|error: 'istream_iterator' is not a member of 'std'|
.
MrGluck
Ворчун
Эксперт CЭксперт С++
6677 / 3858 / 511
Регистрация: 29.11.2010
Сообщений: 10,217
04.12.2012, 11:30     Чтение файла целиком в std::string #6
C++
1
#include <iterator>
Yandex
Объявления
04.12.2012, 11:30     Чтение файла целиком в std::string
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru