С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 20.09.2012
Сообщений: 30
1

удалить и создать файл

25.09.2012, 15:26. Показов 5565. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

У меня вопрос.

Работаю с файлами с помощью fstream.
Всё разобрался с ним, но не пойму как удалить и тут же создать файл. Ну это как бы очищаю)

Пробую так

C++
1
2
3
4
5
6
7
8
9
10
11
12
fstream fstm;
 
fstm.open("textfile.txt");
 
// работаю с файлом
 
// чтобы "очистить"...
fstm.close();
 
std::remove("textfile.txt");
 
fstm.open("textfile.txt"); // по идее должен создаться, раз его нет, но не создается
Но файл не создается. Ни с тем же названием, ни с каким-то другим.

Вот и скажите, пожалуйста - нормальны способ я выбрал, чтобы очистить файл?
И почему он не работает)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.09.2012, 15:26
Ответы с готовыми решениями:

fstream удалить/создать файл
Подскажите как с помощью библиотека fstream можно создать/удалить файл ?

Удалить из файла f числа, которые входят в файл g более двух раз, если таких чисел нет, то создать новый файл
Даны целочисленные файлы f и g. Удалить из файла f числа, которые входят в файл g более двух раз,...

Как создать/удалить файл на сайте?
Приветствую всех. Вот есть у меня админ-панель, мне нужно 2 кнопки Одна: создаёт файл с...

Можно ли на javascript создать или удалить файл?
можно ли на javascript создать или удалить файл? и если можно то как?

14
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 15:56 2
По-моему алгоритм remove не предназначен для удаления файла.
Да и я думаю в С++ нет средств для удаления файлов из внешней среды.
Для этого нужны расширения.

Другое дело можно очистить содержимое файла.
Но у меня возникает встречный вопрос - как это сделать? Потому я сам не знаю как
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2012, 16:01 3
kotleta, http://www.cplusplus.com/refer... io/remove/

Цитата Сообщение от Neumann1 Посмотреть сообщение
Ну это как бы очищаю)
открой файл на запись, если такой файл существует его содержимое будет перезаписано
1
1 / 1 / 0
Регистрация: 20.09.2012
Сообщений: 30
25.09.2012, 16:03  [ТС] 4
Всё удаляется прекрасно - remove работает как надо. Но вновь не создается так как я пытаюсь
0
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 16:21 5
Jupiter , вы имеете в виду использовать функцию fopen("filename","w")??

или это как-то можно через потоки организовать?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2012, 16:29 6
kotleta, можно и через fopen, но лучше не смешивать
C++
1
2
3
4
5
6
7
{
    std::fstream file("textfile.txt");
    // работа с файлом
}
{
    std::ofstream file("textfile.txt"); //перезапись
}
1
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 16:38 7
C++
1
Jupiter
а почему если я делаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// fstream::open
#include <fstream>
using namespace std;
 
int main () {
 
    std::ofstream file("textfile.txt",ios_base::out | ios_base::ate);
 
file << "11111";
 
 file.close();
 
  return 0;
}
То у меня содержимое файла перезаписывается?

хотя

cplusplus.com

ate (at end) Set the stream's position indicator to the end of the stream on opening.
Добавлено через 27 секунд
хотя app работает
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2012, 16:49 8
Цитата Сообщение от kotleta Посмотреть сообщение
а почему если я делаю
Цитата Сообщение от kotleta Посмотреть сообщение
То у меня содержимое файла перезаписывается?

Не по теме:

"почему небо голубое а трава зеленая?"


поместить указатель в конец, дополнить и перезаписать это 3 разных операции
1
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 16:57 9
Хорошо, а тогда смысл ios_base::ate?
При открытии файла установили указатель в конец, а потом файла стирается.

Добавлено через 37 секунд
вернее содержимое файла

я про ofstream
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 17:03 10
Цитата Сообщение от kotleta Посмотреть сообщение
а почему если я делаю
Режим открытия файла запись, поэтому и стирается. Чтобы с ate не стиралось, открывайте, нипример, так:
C++
1
fstream f ("file.txt", ios::in | ios::out | ios::ate);
Или так, но чтения не будет, но и данные не сотрутся:
C++
1
ofstream f ("file.txt", ios::in | ios::out | ios::ate);
Добавлено через 4 минуты
Цитата Сообщение от kotleta Посмотреть сообщение
Хорошо, а тогда смысл ios_base::ate?
Смысл в том, что курсор, после открытия, в конце.
3
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
25.09.2012, 17:07 11
alsav22, тогда почему ofstream ("f",ios::out | ios::app);

НЕ стирает содержимое?

Добавлено через 2 минуты
курсор открытия в конце
тогда я вообще ничего не понимаю, если файл пустой, зачем ставить курсор на конец, ведь там и так пусто? Разве это не одно и то же: курсор в начале, курсор в конце, если файл пустой, если символов в нем нет?
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 17:11 12
Цитата Сообщение от kotleta Посмотреть сообщение
alsav22, тогда почему ofstream ("f",ios::out | ios::app);

НЕ стирает содержимое?
Потому что ios::app так сделан. Но запись только в конец, в произвольное место, при таком режиме открытия, запись не сделать, а если с ios::ate открыть, то можно запись в произвольное место делать.

Добавлено через 1 минуту
Цитата Сообщение от kotleta Посмотреть сообщение
Разве это не одно и то же: курсор в начале, курсор в конце, если файл пустой, если символов в нем нет?
Если пустой, то да. Но ios::ate применяется не только к пустым файлам. Просто нужно смотреть, когда имеет смысл использовать ios::ate, а когда нет.
1
1 / 1 / 0
Регистрация: 20.09.2012
Сообщений: 30
25.09.2012, 17:13  [ТС] 13
Цитата Сообщение от Jupiter Посмотреть сообщение
kotleta, http://www.cplusplus.com/refer... io/remove/


открой файл на запись, если такой файл существует его содержимое будет перезаписано
А он и открыт на запись. Но если в файле например Hello world, а я запишу туда 1111, то будет 1111o world. А нужно чтобы было 1111
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2012, 17:29 14
Цитата Сообщение от Neumann1 Посмотреть сообщение
А он и открыт на запись
еще раз открой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <fstream>
 
int main()
{
    {
        std::ofstream file("1.txt");
        file << "hello world";
    }
 
    {
        std::ofstream file("1.txt"); //файл перезаписан
    }
}
1
1 / 1 / 0
Регистрация: 20.09.2012
Сообщений: 30
27.09.2012, 01:29  [ТС] 15
Пробую через open - не открывается. Как у вас не могу, переменная является полем в моем классе. Нужно закрыть перед открытием. Но в этом нет смысла, он уже открыт.

Надо закрыть, удалить, создать, открыть созданный.
Вот не пойму как создать.

Добавлено через 11 минут
p.s. решил это применив fopen, но конечно не очень хороший стиль совмещать работу с файлами через объекты-потоки (fstream) и fopen, которая по-моему от простого C осталась.
0
27.09.2012, 01:29
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2012, 01:29
Помогаю со студенческими работами здесь

Создать/удалить пустой файл 1.txt на html
Подскажите код кнопок чисто на html без php чтобы просто создать и удалить файл 1.txt Можно с...

Создать файл и удалить его по истечении 20 минут
Здравствуйте, мне необходимо создать файл (текстовые, бинарный - не важно ) для сохранения в нем...

Как создать и удалить темповый файл одной командой?
Как создать и удалить темповый файл одной командой в cmd?

Немогу удалить или создать файл на внешнем HDD
Добрый день, столкнулся с проблемой, не могу удалять или создавать файл на внешнем HDD. Права...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru