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

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

Войти
Регистрация
Восстановить пароль
 
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
#1

Проблемы с кодировками - C++

12.03.2013, 08:03. Просмотров 328. Ответов 2
Метки нет (Все метки)

Имеется имя файла, считанное с текущей директории (папки Windows).
В имени присутствуют пробелы и кирилица.
Как переименовать или удалить такой файл?
Ведь при подстановке переменной-имени типа char* в system del файл либо не обнаруживается (из-за различия кодировок кирилицы) либо читает неверный синтксис системной команды del (из-за пробелов).
Подобная ситуация и при подстановке имени файла в DeleteFile: он просто не обнаруживется.
Никакие изменения кодировок стандартного ввода/вывода, типа setlocale(0,""); setlocale(0,"OCP"); или SetConsoleCP(1251); SetConsoleOutputCP(1251); не помогают (или я их неправильно применяю).
Как изменить кодировку символьной (строковой) переменной для внутреннего использования, например в DeleteFile ???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 08:03     Проблемы с кодировками
Посмотрите здесь:

C++ Проблемы с gets
C++ Проблемы с перегрузкой
C++ Проблемы с массивами
Проблемы с циклом!!! C++
Проблемы с C++ C++
C++ Проблемы с компиляцией
Проблемы с ответами C++
C++ Проблемы с pow()
Запись текста в файл разными кодировками C++
Работа с кодировками файла (АНСИ и ЮТФ-8) C++
C++ Делаю игру на русском, но возникла непонятка с кодировками
C++ Работа с кодировками

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
12.03.2013, 08:30     Проблемы с кодировками #2
Попробуйте использовать юникодовый тип wchar_t* и в него считывать кириллическое имя файла.
Croessmah
Модератор
Эксперт CЭксперт С++
12889 / 7275 / 811
Регистрация: 27.09.2012
Сообщений: 17,974
Записей в блоге: 2
Завершенные тесты: 1
12.03.2013, 08:41     Проблемы с кодировками #3
Попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <Windows.h>
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char path[256];
    char buffer[512];
    std::cout<<"Введите путь ->";
    std::cin>>path;
    strcpy(buffer,"del \"");
    strcat(buffer,path);
    strcat(buffer,"\"");
    system(buffer);
}
Yandex
Объявления
12.03.2013, 08:41     Проблемы с кодировками
Ответ Создать тему
Опции темы

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