Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
#1

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

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

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

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Чтение бинарного файла в поток std::ifstream и вывод в другой бинарный файл std::ofstream (создание копии) - C++
Проверил работу программы на маленькой картинке(744 байт). Все работает. С несколько бОльшими файлами(512КБ) нет. Суть задачи в том,...

Чтение данных файла не целиком - C++
Например есть файл. И нужно не читая весь файл вытащить к примеру только 1 байт, не затрагивая все остальное. Если такое возможно, то...

Чтение из файла строки целиком - C++
ifstream f(&quot;file.txt&quot;); while (!f.eof()) { string s; f &gt;&gt; s; ... В файле текст. Текст файла оно выводит, но каждое...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

Сериализация объектов с полями std::string + запись/чтение в файл - C++
Здравствуйте! Есть класс: class Guest { private: std::string login;

5
MrGluck
Модератор
Эксперт CЭксперт С++
7527 / 4665 / 704
Регистрация: 29.11.2010
Сообщений: 12,741
04.12.2012, 10:51 #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;
}
1
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
04.12.2012, 11:01  [ТС] #3
Я не хочу открывать в конструкторе, мне удобнее собрать все декларации в начале функции, а перед открытием должна быть валидация параметров-указателей, поэтому открывать буду методом open. Есть ли при этом какая нибудь возможность определить, открылся ли файл и существует ли он вообще? Или для этого надо привлекать бинарные функции вроде CreateFile?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7527 / 4665 / 704
Регистрация: 29.11.2010
Сообщений: 12,741
04.12.2012, 11:06 #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;
1
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
04.12.2012, 11:13  [ТС] #5
Пишет:
C:\tsserver\Projects\cpp\codeblocks\Collada\Collada.cpp|45|error: 'istream_iterator' is not a member of 'std'|
.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7527 / 4665 / 704
Регистрация: 29.11.2010
Сообщений: 12,741
04.12.2012, 11:30 #6
C++
1
#include <iterator>
1
04.12.2012, 11:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2012, 11:30
Привет! Вот еще темы с ответами:

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Как текст из заданного файла присвоить переменной типа std::string? - C++
Здравствуйте, у меня есть файл с текстом, нужно этот текст присвоить переменной string, как это сделать? самый простой вариант желательно

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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