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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
#1

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) - C++

16.03.2014, 19:42. Просмотров 529. Ответов 5
Метки нет (Все метки)

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING)

Салем, начал изучать файловую работу в С++, и столкнулся с такой проблемой, что функция remove() соглашается удалять только заранее запланированые файлы, выдавая ошибку на remove(STRING), в то время когда я хочу дать опцию написания в дебагере файла-жертвы, как в этом фрагменте программы. Можно ли вообще использовать стринги в данной функции? Если нет, чем заменить реализация?
Заранее спасибо!

п.с. инглиш несет юморной характер, не в коем случае не надо флеймить меня

п.с "txtname" объявлен стрингом с более раннего фрагмента программы.


C++
1
2
3
4
5
6
7
8
9
10
11
if (strcmp(k, "delete") == 0 || strcmp(k, "2") == 0 || strcmp(k, "erase") == 0 || strcmp(k, "remove") == 0)
                {
                    cout << "-------------deleting file-------------\n\nWat naem kebab haev?\n============\\ \n";                   //        
                    cin >> txtname;
 
                    if(remove(txtname) == 0)  //здески проблемочка.                                                                              //
                    cout << "============/ \n" << "-----------kebab removed pls.-----------\n";
                    else
                        cout << "============/ \n" << "!!!!ERROR DELETING FILE!!!!\nCzek your grammar maybe.\n";
                    break;
                }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2014, 19:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) (C++):

stl remove своя функция - C++
мне нужна в качестве 3 аргумента функции remove указать структура, компилятор выдаёт ошибку, как исправить?

Функция remove: удаление всех включений элемента x из стека - C++
реализуйте функцию remove которая удаляет все включения элемента x из стека

std::string + std::remove - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; int main() { std::string str(&quot;hello, world. have a nice...

Не правильно работает erase + remove - C++
мне надо удалить из строки все пробелы, я сделал так: std::string expr; ... expr.erase(std::remove(expr.begin(), expr.end(), ' ')); ...

На что ссылается итератор после remove(*it) - C++
Здравствуйте! Не понимаю, почему итератор ссылается на удаленный из списка элемент? #include &lt;vcl&gt; #include &lt;iostream&gt; #include...

Объяснить работу алгоритма std::remove(); - C++
Есть буквы: #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; int main () { std::vector&lt;int&gt; vec = {10,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6355 / 5919 / 1919
Регистрация: 18.12.2011
Сообщений: 15,215
Завершенные тесты: 1
16.03.2014, 20:01 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если txtname строка класса string, тогда для remove надо передать только символы строки
C++
1
remove(txtname.c_str());
Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
16.03.2014, 20:13  [ТС] #3
Спасибо, код починило, но вот только я не понимаю значения, ведь например
C++
1
ofstream foo(txtname);
создает файл без каких либо добавок, почему тогда здесь это надо?
zss
Модератор
Эксперт С++
6355 / 5919 / 1919
Регистрация: 18.12.2011
Сообщений: 15,215
Завершенные тесты: 1
16.03.2014, 20:19 #4
Цитата Сообщение от Komi Посмотреть сообщение
почему тогда здесь это надо?
ofstream находится в STL библиотеке. Он знает, что такое string
(кстати Начиная только с Visual Studio 2010), а remove не знает.
Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
16.03.2014, 20:45  [ТС] #5
Цитата Сообщение от zss Посмотреть сообщение
ofstream находится в STL библиотеке. Он знает, что такое string
(кстати Начиная только с Visual Studio 2010), а remove не знает.
Тоесть если я правильно понял, вместо стринга с добавкой ".c_str()" , можно просто использовать массив чаров?
zss
Модератор
Эксперт С++
6355 / 5919 / 1919
Регистрация: 18.12.2011
Сообщений: 15,215
Завершенные тесты: 1
17.03.2014, 12:20 #6
Цитата Сообщение от Komi Посмотреть сообщение
вместо стринга с добавкой ".c_str()" , можно просто использовать массив чаров?
Да,метод c-str() возвращает массив char.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2014, 12:20
Привет! Вот еще темы с ответами:

Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF - Lisp
Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF.

remove удаляет не с конца - C#
Привет! Есть такая строка, которая урезает слово с конца на 3 символа, если его длина больше 4 символов: ...

LinkedList: метод remove не удаляет нужное значение - Java SE
В чем может быть ошибка...но не корректно работает метод .remove он не удаляет нужное значение for(int i=0;i&lt;symbols.size();i++) ...

Почему List.remove(0) удаляет последний элемент? - Java SE
есть result.addAll(orElements); где result и orElements - оба List&lt;StackElement&gt; результат: StackElement...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.03.2014, 12:20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru