0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 20
|
|
1 | |
Файлы C++13.08.2021, 19:59. Показов 2712. Ответов 12
1. Как сделать, чтобы fstream создавал файл для записи и чтения, если его не существует, а если существует, то открывал его, соответсвтенно ?
2. Если я записываю в файл строки, то как мне вернуть указатель в начало файла для считывания того, что там записано?
0
|
13.08.2021, 19:59 | |
Ответы с готовыми решениями:
12
Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? Зачем нужно добавлять файлы в файлы исходного кода Заголовочные файлы и файлы cpp |
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
|
13.08.2021, 20:02 | 2 |
bugakov, эммм подскажу на нативном уровне:
seek(byte) установить позицию чтения\записи по п1 при открытии файла есть указатели типа а с r w
0
|
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 20
|
||||||
13.08.2021, 20:24 [ТС] | 4 | |||||
0
|
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
|
||||||
13.08.2021, 20:27 | 5 | |||||
Так точно создаст)
0
|
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 20
|
|
13.08.2021, 20:31 [ТС] | 6 |
А можете подсказать, почему мы сначала создаем файл с помощью конструктора, а потом открываем через метод open()?
Я просто себе представляю, что мы сначала должны сделать проверку существует ли файл, а только потом его создать, если его не существует
0
|
Just Do It!
|
||||||
13.08.2021, 20:31 | 7 | |||||
вар:
есть же отличнейшая справка: https://en.cppreference.com/w/cpp/io/basic_fstream
1
|
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 20
|
|
13.08.2021, 20:33 [ТС] | 8 |
а, ну, я проверил ваш метод, он пересоздает файл и очищает его, если тот существует, мне такое не подходит)
0
|
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
|
|
13.08.2021, 20:35 | 9 |
Сообщение было отмечено bugakov как решение
Решение
1
|
1710 / 1110 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
||||||
13.08.2021, 20:43 | 10 | |||||
c
app работает
Хотя, по контексту, вроде именно с ним и надо)
1
|
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 20
|
||||||
13.08.2021, 20:45 [ТС] | 11 | |||||
Протестировал с конструктором, он будет перезаписывать все в файле
Я этого не уточнял, вроде, но спасибо Мне понадобился метод open вместе с
0
|
1710 / 1110 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
|
13.08.2021, 21:39 | 12 |
А, ну вот уже)
Как я люблю потормозить с написанием Добавлено через 2 минуты Так перезаписывать или в конец писать? Перезаписывать - trunc(очищает всё при открытии) вместо app, оно тоже работает. Добавлено через 51 минуту Кстати, вот пишут И, в принципе, интересно отчего std::fstream без флагов/ только с in | out мешкает с созданием.
0
|
3718 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
|
14.08.2021, 02:20 | 13 |
Вроде логично, открываем на чтение (а то что и на запись, это такое), значит файл должен уже существовать.
ofstream создает файл сразу, без разницы пишем мы туда что то или нет, что тоже не очень хорошо. стандартные потоки для работы с файлами не самый оптимальный способ, имхо. Добавлено через 6 минут Точнее сказать они вообще не имеют к файловой системе/структуре почти никакого отношения. Ну создают они файлы, на этом ихнее касание закончилось. Потоки работают с содержимым файлов.
1
|
14.08.2021, 02:20 | |
14.08.2021, 02:20 | |
Помогаю со студенческими работами здесь
13
Раздельная компиляция: что помещать в заголовочные файлы, а что в файлы реализации (исходники)? нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) Файлы.Текстовые файлы Файлы С++ Файлы С++ Файлы.... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |