|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
|
Чтение всего файла fstream06.05.2014, 23:29. Показов 17152. Ответов 51
Метки нет (Все метки)
В общем мне казалась задача вполне очевидна и частая считать файл целиком в строку, но почему-то я не нашёл ничего готового (типа fstream::readAll()).
Оператор >> игнорирует пробельные символы, вычитал отсюда fstream - символ пробела что можно использовать getline, но меня смущает что туда нужно передавать буфер заранее известного размеры, вам не кажется что это как-то дико и в Си стиле? По-моему в современном мире функция должна сама создать буфер и вернуть мне его. В общем как вы читаете весь файл и затем записываете его в переменную?
0
|
|
| 06.05.2014, 23:29 | |
|
Ответы с готовыми решениями:
51
Заменить чтение из файла аналогом fstream |
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
||
| 07.05.2014, 16:43 | ||
|
п.с. Такое чувство, что разговор скатывается к: "Я хочу кнопку, при нажатии на которую все будет работать. При этом я ничего делать не хочу".
0
|
||
|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
||||||||||||||||||||||||||||||||
| 07.05.2014, 17:09 [ТС] | ||||||||||||||||||||||||||||||||
Проблема то в том что компилятор не берёт его из родительского класса, а ищет только в моём. И что бы этот код работал нужно добавить
0
|
||||||||||||||||||||||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||||||||||||
| 07.05.2014, 17:53 | |||||||||||||||||
|
Оператор operator= переносится из базового класса. Но есть такая штука, как сокрытие методов. Поясню на более очевидном примере:
Теперь вернемся к operator=. Дело в том, что в твоем наследнике HL::string уже есть operator=, это автогенерированный
Да, в С++11 появилась возможность наследовать и конструкторы. Точно так же, через using.
1
|
|||||||||||||||||
|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
||||||||||||||||
| 07.05.2014, 18:19 [ТС] | ||||||||||||||||
|
DrOffset, ну вот! Вы же тот человек который пришёл и всё разложил по полочкам. Огромное спасибо!
Добавлено через 15 минут Хотя всё таки небольшая непоняточка осталась. Берём пример Jupiter'a
, то компилятор не может найти подходящий конструктор, а именно
Как его найти?
0
|
||||||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 07.05.2014, 19:09 | |||||||
OrmaJever, предупреждая дальнейшие вопросы, советую тщательно изучить тему связанную с наследованием конструкторов в С++11. Иначе, пользоваться инструментом не понимая как он работает довольно опасно. Начать можно отсюда. А потом настоятельно рекомендую почитать параграф 12.9 стандарта С++. Если все-таки что-то будет не понятно, то спрашивай тогда здесь
1
|
|||||||
|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
||||||
| 07.05.2014, 20:21 [ТС] | ||||||
|
Ладненько со всем этим по очереди разберусь. Тогда ещё один я думаю простой вопрос, если я создам чистый класс
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 07.05.2014, 20:42 | ||
|
2. Конструктор копирования; 3. Деструктор; 4. Оператор присваивания (copy-assignment). В С++11 еще добавляются: 5. Конструктор перемещения; 6. Оператор перемещения (move-assignment). Все эти методы будут являться тривиальными в данном случае (trivial). Добавлено через 9 минут Конструктор по-умолчанию не добавляется, если определен любой из пользовательских конструкторов. Остальные методы не добавляются, если существуют определенные пользователем альтернативы.
1
|
||
|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
|
| 07.05.2014, 20:45 [ТС] | |
|
Правильно ли я понял
1) myClass( void ); 2) myClass( const myClass & ); 3) ~myClass( void ); 4) void operator=( ? ); // какой параметр? myClass & ? 5) myClass( myClass && ); 6) myClass& operator= ( myCLass && ); 5 и 6 я взял из описания std::string, но не понимаю что они делают. && - ссылка на ссылку или логический оператор AND?
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 07.05.2014, 20:50 | |||
|
2) myClass( const myClass & ); 3) ~myClass(); 4) myClass & operator=(const myClass &); 5) myClass( myClass && ); 6) myClass& operator= ( myCLass && ); void в скобках не надо писать. Эта надобность была в С, из-за того, что func() обозначала не функцию без параметров, а функцию с бесконечным числом параметров, т.е. аналог func(...). В С++ такого нет.
1
|
|||
|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
|
| 07.05.2014, 20:54 [ТС] | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 07.05.2014, 21:37 | |||
|
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 07.05.2014, 21:53 | |||
|
А вообще, лично я считаю полезной практикой отвечать именно на тот вопрос, который задал ТС, путь он и не всегда согласуется с моими личными представлениями о правильности. Если бы я вместо того, чтобы отвечать на вопрос начал бы критиковать подход ТС с наследованием std::string, то как бы я выглядел в его глазах?
0
|
|||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 07.05.2014, 22:14 | |
|
DrOffset, нельзя идти на поводу у ТС. Надо жесткой хваткой взять его и сказать: "что же ты делаешь! Так нельзя.Потому что: раз, два и три". Я бы например предложил ТС использовать Qt с ее QString и прочими финтифлюшками, а не городить свои чудо-строки (тем более наследуясь от std::string). Раз уж хочется большого спектра готовых функций.
Наличие опыта отвечающего это все таки показатель, что к ответу (совету) будут прислушиваться, а здесь получается, что тема уходит в другую плоскость и главная проблема теряется из виду.
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||
| 07.05.2014, 22:33 | |||||
![]() Добавлено через 11 минут Другое дело когда автор пишет вообще какую-то ахинею, которая ни при каких обстоятельствах работать не будет - тут вот можно сказать "так нельзя". Но откровенной ахинеи лично я здесь не вижу. Спорные моменты есть конечно, но форумы для того и есть, чтобы каждый мог высказаться. Вот тебе показалось это неправильным, скажи это ТС, возможно он и прислушается.
0
|
|||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 07.05.2014, 22:54 | |||||||
![]() ![]()
0
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||
| 07.05.2014, 22:59 | ||||||
0
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 07.05.2014, 23:04 | |||
0
|
|||
|
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
|
|||
| 07.05.2014, 23:33 [ТС] | |||
|
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 07.05.2014, 23:49 | ||
|
Очень большая цифра 10%, есть мнение, что ее можно сократить весьма значительно.
0
|
||
| 07.05.2014, 23:49 | |
|
Помогаю со студенческими работами здесь
40
Чтение/Редактирование/Создание Файла без fstream
Не могу разобраться. Чтение и вывод на экран всего содержимого файла .txt на консоль fstream не работает и чтение и запись Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|