|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.08.2015, 20:56 | #41 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
А как корректно записать число, ну или строку 2551 в файл, в позицию 20? Точнее в строку номер 20
Код:
from dark to light)
|
14.08.2015, 21:05 | #42 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Такого понятия, как строки, в файлах нету.
Файл - это последовательность байт. Чтоб был переход на следующую строку, запишите в файл "\r\n", это будут 2 байта: 0x0D ("\r") - возврат каретки 0x0A ("\n") - новая строка Для этого можно просто использовать: my_file << endl;
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 14.08.2015 в 21:12. |
14.08.2015, 21:16 | #43 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
нет, вы не поняли, я про то, как узнать позицию байта в файле, с которого у нас начинается число 5 и заменить его на что-нибудь, например на 2551
вот допустим цикл от 1 до 8, в файле будет 1 2 3 4 5 6 7 8 как узнать где находится число 5, и заменить его на 2551? Вот то, что у меня написано в коде-я это пытался реализовать используя seekp. Кст, почему-то кажется, что каретку не обязательно писать, можно и так Код:
Если разбираться в мелочах, то и cin.ignore(); можно как-нибудь заменить?
from dark to light)
|
14.08.2015, 21:23 | #44 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Просто так заменить число в файле не получится, для этого нужно будет сместить все содержимое файла и только тогда вставить нужное число.
Правильнее будет создавать новый файл, записывать туда, а потом переименовывать его. Представьте, что файл, это массив байт, как Вы сможете туда что-то вставить? Если все числа в файле будут содержать одинаковое количество цифр, тогда это можно посчитать. Иначе нужно будет считывать все по одному числу, и считать на каком числе мы находимся, если это будет 5-е число, тогда в эту позицию и записывать (но при этом нужно учитывать, чтоб новое число содержало столько же цифр, как и было у старого).
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 14.08.2015 в 21:37. |
14.08.2015, 21:32 | #45 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Хорошо, спасибо, теперь разобрался.
А используя seekg у ifstream - в качестве параметров указывается номер байта откуда нужно считывать? Тогда правильнее будет колдовать с sizeOf и Seekg, дабы считать нужное число с нужной позиции, но это слишком геморно, может есть вариант проще? Есть ли какие-нибудь плюсы в работе В общем, плюсы от использования * в ofstream я не разглядел, но второй вариант выглядит лучше, поэтому буду им пользоваться. Помимо красоты - в чем еще плюсы?
from dark to light)
|
14.08.2015, 21:40 | #46 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Цитата:
И Вы далеко не понимаете, что такое указатели... Это то же самое, что справить какие плюсы у: int a; и int *a;
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 14.08.2015 в 21:42. |
|
19.08.2015, 05:28 | #47 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Ребят, а вот например, в каких случаях без указателей ну просто никак?
Например вернуть из метода класса или функции много значений разных типов, а еще?
from dark to light)
|
19.08.2015, 05:43 | #48 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Динамическое выделение памяти под что-либо.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
19.08.2015, 06:08 | #49 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Ну, к примеру, вот указатели...
Код:
Итог ведь один и тот же. Код:
from dark to light)
|
19.08.2015, 06:13 | #50 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Вообще, кажется лучше будет использовать связанные списки, потому что память там действительно выделяется под каждой новый элемент в динамическом порядке, а вот в примере выше в обоих случаях заранее указывается.
Правда недостаток списков в том, что нет индексации как в массиве
from dark to light)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
указатели | salmon172 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 31.05.2011 21:34 |
указатели | Артэс | Общие вопросы C/C++ | 4 | 07.09.2010 11:08 |
Указатели | Анютик_sexi | Помощь студентам | 3 | 16.06.2010 14:38 |
Указатели | AquaticSoul | Общие вопросы C/C++ | 5 | 22.12.2009 15:13 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |