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

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

Восстановить пароль Регистрация
 
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
16.03.2014, 19:42     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) #1
Функция 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++
Функция удаляет начальные пробелы из строки... C++
На что ссылается итератор после remove(*it) C++
C++ Почему функция не удаляет минимальный элемент
C++ Списки и файлы. Вывести на экран только предложения, содержащие слово которое ввели с клавиатуры (найти ошибку в коде)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
16.03.2014, 20:01     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если txtname строка класса string, тогда для remove надо передать только символы строки
C++
1
remove(txtname.c_str());
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
16.03.2014, 20:13  [ТС]     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) #3
Спасибо, код починило, но вот только я не понимаю значения, ведь например
C++
1
ofstream foo(txtname);
создает файл без каких либо добавок, почему тогда здесь это надо?
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
16.03.2014, 20:19     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) #4
Цитата Сообщение от Komi Посмотреть сообщение
почему тогда здесь это надо?
ofstream находится в STL библиотеке. Он знает, что такое string
(кстати Начиная только с Visual Studio 2010), а remove не знает.
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
16.03.2014, 20:45  [ТС]     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) #5
Цитата Сообщение от zss Посмотреть сообщение
ofstream находится в STL библиотеке. Он знает, что такое string
(кстати Начиная только с Visual Studio 2010), а remove не знает.
Тоесть если я правильно понял, вместо стринга с добавкой ".c_str()" , можно просто использовать массив чаров?
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
17.03.2014, 12:20     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) #6
Цитата Сообщение от Komi Посмотреть сообщение
вместо стринга с добавкой ".c_str()" , можно просто использовать массив чаров?
Да,метод c-str() возвращает массив char.
Yandex
Объявления
17.03.2014, 12:20     Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING)
Ответ Создать тему
Опции темы

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