С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
LVV
94 / 91 / 21
Регистрация: 15.02.2010
Сообщений: 369
#1

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

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

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

Траблы с кодировками - C++
Задание звучит так: из заданной строчки вывести слова, в которых нет повторных букв struct IsGoodString : public...

Работа с кодировками - C++
Всем привет. Есть следующая проблема: есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо...

Работа с кодировками файла (АНСИ и ЮТФ-8) - C++
Всем здрасти! Подскажите пожалуйста, каким образом можно реализовать следующее: 1) Как программно преобразовать текст из ANSI в...

Запись текста в файл разными кодировками - C++
Здравствуйте. Имеется файл. Нужно заменить кусок текста на текст другой кодировки. Как в С++ работать с кодировками? Еще ни разу не...

Делаю игру на русском, но возникла непонятка с кодировками - C++
Делаю игру на русском языке по нахождению антонимов. Использую setlocale, но когда вызываю функцию, которая проверяет правильность ответа и...

Проблемы с gets - C++
здравствуйте,помогите пожалуйста сразу хочу заметить,что препод нас заставляет писать все в microsoft visual studio 2005 пишу...

2
SatanaXIII
Супер-модератор
Эксперт С++
5642 / 2677 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
12.03.2013, 08:30 #2
Попробуйте использовать юникодовый тип wchar_t* и в него считывать кириллическое имя файла.
1
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 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);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2013, 08:41
Привет! Вот еще темы с ответами:

Проблемы с C++ - C++
Вот в универе дали код проги и сказали розабраться и обьяснить что это как оно работает и с чем его едять. Помогите разобраться что это...

Проблемы с перегрузкой - C++
Доброго времени суток. Собственно у меня следущая проблема. Создаю класс динамических одномерных массивов: class massiv { public: ...

Проблемы кода - C++
Добрый день! Вопрос предельно прост, перечислите, пожалуйста все проблемы данного кода class Foo { public: Foo(int j) {...

Проблемы с циклом!!! - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; typedef struct { float...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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