Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/501: Рейтинг темы: голосов - 501, средняя оценка - 4.76
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
1

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

22.03.2011, 12:49. Показов 103872. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите как с помощью библиотека fstream можно создать/удалить файл ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2011, 12:49
Ответы с готовыми решениями:

fstream (удалить файл каким то методом и переименовать)
Здравствуйте. Возник вопрос. В инете ничего не нашел толкового так как английский хромой. fstream...

удалить и создать файл
Добрый день. У меня вопрос. Работаю с файлами с помощью fstream. Всё разобрался с ним, но не...

Fstream не видит файл
Почему в Visual Studio2015 не находит текстовый файл, который лежит рядом с .exe? ...

Запись в файл fstream
Вот такой вот код , изобразил я для записи переменной в файл , проблема в том , что компилятор...

22
126 / 126 / 42
Регистрация: 12.03.2011
Сообщений: 227
22.03.2011, 16:20 2
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
ofstream ofs("test.txt"); //создать
ofs.close();
 
std::remove("test.txt"); //удалить
10
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 17:57  [ТС] 3
ОГРОМНОЕ СПС!

Добавлено через 34 минуты
Еще такой вопрос возник.
Нужно что бы не в файл с запускаемым файлом создался документ, а например в /home/user/.files/.
Не подскажите, как это можно реализовать ,

Добавлено через 28 минут
И еще один вопрос.
Как можно реализовать что то на подобии этого( в моем примере компилятор выдает ошибки).

*char * na = "test/" + this->nick + ".txt";
std::ofstream ofs(na);
ofs.close();
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.03.2011, 18:21 4
Цитата Сообщение от koka3000 Посмотреть сообщение
Нужно что бы не в файл с запускаемым файлом создался документ, а например в /home/user/.files/.
Выполните эту программу
C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(int argc, char ** argv, char ** envp){
    while ( *envp )
        printf("%s\n", *envp++);
    return 0;
}
обратите внимание на строчку, начинающуюся с HOME, ну а дальше что-нибудь придумаете
2
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 18:37  [ТС] 5
Дело не в том что я не знаю какой юзер будет использовать ( прогу буду использовать только я, и я знаю свой ник))
1. Я не знаю как закинуть именно в определенную папку, а не в папку с прогой.
C++
1
std::ofstream f("/home/user/papka/test.txt");
при таком написании компилятор не выдает ошибок, но файл в папке тоже не создается.(
создается только так:
C++
1
std::ofstream f("test.txt");
но тогда он будет в папке с прогой(
2. Предположим что мой файл не всегда будет называться test.txt, а его имя будет храниться в переменной name. Вот как я пытался это сделать:
C++
1
2
char * name = "namefile";
std::ofstream f(name);
НО КОМПИЛЯТОР ВЫДАЕТ ОШИБКИ!
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
22.03.2011, 18:51 6
Цитата Сообщение от koka3000 Посмотреть сообщение
1. Я не знаю как закинуть именно в определенную папку, а не в папку с прогой.
C++
1
std::ofstream ofs("D://inc/test.txt");//Файл создасться в локальном диск D, папке inc
Добавлено через 1 минуту
Цитата Сообщение от koka3000 Посмотреть сообщение
НО КОМПИЛЯТОР ВЫДАЕТ ОШИБКИ!
Хм, у меня все нормально компилируеться.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.03.2011, 18:53 7
Цитата Сообщение от koka3000 Посмотреть сообщение
Я не знаю как закинуть именно в определенную папку
да ну?!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <fstream>
 
int main()
{
    const char * name1 = "/home/andrew/file1.txt";
    std::ofstream ofs1(name1);
    if ( ! ofs1.is_open() ){
        std::cerr << "Can't open first file!" << std::endl;
        return 1;
    }
    ofs1 << "File #1" << std::endl;
    ofs1.close();
    std::ofstream ofs2("/home/andrew/file2.txt");
    if ( ! ofs2.is_open() ){
        std::cerr << "Can't open second file!" << std::endl;
        return 1;
    }
    ofs2 << "File #2" << std::endl;
    ofs2.close();
    return 0;
}
fstream удалить/создать файл
2
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 19:19  [ТС] 8
Ок. А как быть с этим?
Есть какая-то переменная nameplayer с типом string:
C++
1
2
const char * name1 = "/home/andrew/" + nameplayer + ".txt";
        std::ofstream ofs1(name1);
Выдает ошибки. Переменная nameplayer - имя игрока. Для каждого игрока есть свой файлик.
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
22.03.2011, 19:22 9
Цитата Сообщение от koka3000 Посмотреть сообщение
const char * name1 = "/home/andrew/" + nameplayer + ".txt";
Неальзя так делать, можно так разве-что так
C++
1
std::string name1 = "/home/andrew/" + nameplayer + ".txt"
1
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 19:33  [ТС] 10
std::string name1 = "/home/andrew/" + nameplayer + ".txt"
std::ofstream ofs1(name1);

выдает ошибки . (
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.03.2011, 19:35 11
Цитата Сообщение от asics Посмотреть сообщение
...можно так разве-что так
C++
1
std::string name1 = "/home/andrew/" + nameplayer + ".txt"
и сразу ответ на следующий вопрос
C++
1
std::ofstream ofs1(name1.c_str());
2
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 19:37  [ТС] 12
OMG, СПАСИБО ОГРОМНОЕ !!!
0
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
17.04.2011, 13:51  [ТС] 13
Извиняюсь, что поднимаю старую тему, не хочется из-за маленькой проблемы новую создавать.

C++
1
2
int test = 5;
std::string name1 = "/home/andrew/" + test + ".txt";
В Visual дает ошибку:
error C2110: +: невозможно добавить два указателя
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
17.04.2011, 14:26 14
koka3000, Переводите число в строку
C++
1
2
std::ostringstream ost;
ost << test;
и потом уже соеденяйте
C++
1
std::string name1 = "/home/andrew/" + ost.str() + ".txt";
1
11 / 11 / 5
Регистрация: 02.02.2011
Сообщений: 211
17.04.2011, 18:00  [ТС] 15
Что-то мне ошибки разные выдает.
А можно как-то так сделать:
int i = 1;
std::string name = 1 + "";
Ну что бы содержимое int попало в string
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.04.2011, 18:32 16
Цитата Сообщение от easybudda Посмотреть сообщение
Выполните эту программу
C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(int argc, char ** argv, char ** envp){
    while ( *envp )
        printf("%s\n", *envp++);
    return 0;
}
обратите внимание на строчку, начинающуюся с HOME, ну а дальше что-нибудь придумаете
о_О
А можно обьяснить, как это работает?
Что это за волшебный указатель?
0
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
17.04.2011, 19:03 17
asics, не std::ostringstream ost; а std::istringstream ost;
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.04.2011, 19:35 18
Цитата Сообщение от LaГushan Посмотреть сообщение
std::remove("test.txt"); //удалить
смешная шутка
2
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
17.04.2011, 19:46 19
Цитата Сообщение от aram_gyumri Посмотреть сообщение
asics, не std::ostringstream ost; а std::istringstream ost;
Что за бред ? std::istringstream вообщето превращает строку в поток, при чем здесь это ?

Добавлено через 2 минуты
Да и нет там (в std::istringstream) перегруженого оператора <<
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
17.04.2011, 19:48 20
diagon, оболочка передаёт запускаемой программе кроме аргументов, с которыми она (программа) была запущена, ещё и параметры окружения. char ** envp - указатель на массив строк с этими параметрами. Как и массив argv, envp заканчивается нулевым указателем.
1
17.04.2011, 19:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2011, 19:48
Помогаю со студенческими работами здесь

Запись в файл fstream
После первого прогона не выводит ничего из файла. void WriteInTheFile(fstream &amp;file_in) {...

Fstream не видит файл
Делаю лабу и возникла такая проблема - надо открыть текстовый файл. Файл лежит в одной папке c .exe...

Можно ли с помощью fstream создать папку
Можно ли с помощью fstream создать папку с каким-то файлом? Заранее спасибо

fstream не записывает данные в файл
Если к примеру открываю файл так : fstream io; io.open(&quot;test.txt&quot;); то читает из файла хорошо,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru