Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 307, средняя оценка - 4.94
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 12:49     fstream удалить/создать файл #1
Подскажите как с помощью библиотека fstream можно создать/удалить файл ?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2011, 12:49     fstream удалить/создать файл
Посмотрите здесь:

C++ Запись в файл fstream
C++ удалить и создать файл
Не могу открыть файл fstream C++
fstream (удалить файл каким то методом и переименовать) C++
fstream не записывает данные в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LaГushan
123 / 123 / 14
Регистрация: 12.03.2011
Сообщений: 227
22.03.2011, 16:20     fstream удалить/создать файл #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
ofstream ofs("test.txt"); //создать
ofs.close();
 
std::remove("test.txt"); //удалить
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 17:57  [ТС]     fstream удалить/создать файл #3
ОГРОМНОЕ СПС!

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

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

*char * na = "test/" + this->nick + ".txt";
std::ofstream ofs(na);
ofs.close();
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.03.2011, 18:21     fstream удалить/создать файл #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, ну а дальше что-нибудь придумаете
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 18:37  [ТС]     fstream удалить/создать файл #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);
НО КОМПИЛЯТОР ВЫДАЕТ ОШИБКИ!
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.03.2011, 18:51     fstream удалить/создать файл #6
Цитата Сообщение от koka3000 Посмотреть сообщение
1. Я не знаю как закинуть именно в определенную папку, а не в папку с прогой.
C++
1
std::ofstream ofs("D://inc/test.txt");//Файл создасться в локальном диск D, папке inc
Добавлено через 1 минуту
Цитата Сообщение от koka3000 Посмотреть сообщение
НО КОМПИЛЯТОР ВЫДАЕТ ОШИБКИ!
Хм, у меня все нормально компилируеться.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.03.2011, 18:53     fstream удалить/создать файл #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 удалить/создать файл
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 19:19  [ТС]     fstream удалить/создать файл #8
Ок. А как быть с этим?
Есть какая-то переменная nameplayer с типом string:
C++
1
2
const char * name1 = "/home/andrew/" + nameplayer + ".txt";
        std::ofstream ofs1(name1);
Выдает ошибки. Переменная nameplayer - имя игрока. Для каждого игрока есть свой файлик.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.03.2011, 19:22     fstream удалить/создать файл #9
Цитата Сообщение от koka3000 Посмотреть сообщение
const char * name1 = "/home/andrew/" + nameplayer + ".txt";
Неальзя так делать, можно так разве-что так
C++
1
std::string name1 = "/home/andrew/" + nameplayer + ".txt"
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
22.03.2011, 19:33  [ТС]     fstream удалить/создать файл #10
std::string name1 = "/home/andrew/" + nameplayer + ".txt"
std::ofstream ofs1(name1);

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

C++
1
2
int test = 5;
std::string name1 = "/home/andrew/" + test + ".txt";
В Visual дает ошибку:
error C2110: +: невозможно добавить два указателя
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.04.2011, 14:26     fstream удалить/создать файл #14
koka3000, Переводите число в строку
C++
1
2
std::ostringstream ost;
ost << test;
и потом уже соеденяйте
C++
1
std::string name1 = "/home/andrew/" + ost.str() + ".txt";
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
17.04.2011, 18:00  [ТС]     fstream удалить/создать файл #15
Что-то мне ошибки разные выдает.
А можно как-то так сделать:
int i = 1;
std::string name = 1 + "";
Ну что бы содержимое int попало в string
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.04.2011, 18:32     fstream удалить/создать файл #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, ну а дальше что-нибудь придумаете
о_О
А можно обьяснить, как это работает?
Что это за волшебный указатель?
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
17.04.2011, 19:03     fstream удалить/создать файл #17
asics, не std::ostringstream ost; а std::istringstream ost;
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.04.2011, 19:35     fstream удалить/создать файл #18
Цитата Сообщение от LaГushan Посмотреть сообщение
std::remove("test.txt"); //удалить
смешная шутка
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.04.2011, 19:46     fstream удалить/создать файл #19
Цитата Сообщение от aram_gyumri Посмотреть сообщение
asics, не std::ostringstream ost; а std::istringstream ost;
Что за бред ? std::istringstream вообщето превращает строку в поток, при чем здесь это ?

Добавлено через 2 минуты
Да и нет там (в std::istringstream) перегруженого оператора <<
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2011, 19:48     fstream удалить/создать файл
Еще ссылки по теме:

C++ Fstream не видит файл
C++ Не перезаписывается файл. Работа с fstream
C++ Запись в файл fstream

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.04.2011, 19:48     fstream удалить/создать файл #20
diagon, оболочка передаёт запускаемой программе кроме аргументов, с которыми она (программа) была запущена, ещё и параметры окружения. char ** envp - указатель на массив строк с этими параметрами. Как и массив argv, envp заканчивается нулевым указателем.
Yandex
Объявления
17.04.2011, 19:48     fstream удалить/создать файл
Ответ Создать тему
Опции темы

Текущее время: 10:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru