Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ MFC и двоичные файлы https://www.cyberforum.ru/ cpp-beginners/ thread2492579.html
У меня есть двоичный файл. Мне необходимо считать его в приложение и вывести в виде простыни текста в приложении SDI в окно документа. Вот сюда. Я не совсем понимаю, как можно, вообще, это...
Поэлементно просуммировать два динамических двумерных массива C++
Здравствуйте, у меня такое задание: Написать программу, которая поэлементно суммирует два динамических двумерных массива, заполненных случайными числами и сохраняет результат в третьем массиве....
C++ Как напечатать enum class? Как напечатать enum class? Enum class находится в интерфейсе строка 5. Мне нужно чтобы напечаталось допустим Magical_Realism. Функция которая печатет находится в реализации 191 строка. ... https://www.cyberforum.ru/ cpp-beginners/ thread2492564.html C++ Не понимаю как работает алгоритм Всем доброго времени суток. Настиг такой вопрос, с которым уже более недели не могу разобраться: искал везде, читал всё, на англоязычном инете ничего полезного не нашел(на русскоязычном вообще ничего... https://www.cyberforum.ru/ cpp-beginners/ thread2492546.html
C++ Реализовать функцию, которая принимает массив, а также число n, и возвращает индекс
Реализовать функцию, которая принимает массив (плюс его длину) , а также число n, и возвращает индекс числа в массиве или -1, если такого числа нет. Прототип: int Search (int a , const int n, int...
C++ Перевод указателя на член класса в обычный указатель Добрый день. Есть некоторый API, который принимает обычные указатели на функцию и поэтому при создании приложения на ООП возникает проблема перевода указателя на член класса в обычный указатель. ... https://www.cyberforum.ru/ cpp-beginners/ thread2492518.html
C++ Нейронная сеть на c++ Уважаемые форумчане нужна ваша помощь с нейронной сетью на c++! На днях захотел написать прогу - многослойный перцептрон на c++, вроде информации много и пытался менять код, но всё одинаково, прога... https://www.cyberforum.ru/ cpp-beginners/ thread2492504.html Написать функцию, которая возвращает сумму элементов массива с номерами от left до right C++
Написать функцию, которая принимает массив размера N и целые числа left и right и возвращает сумму элементов массива с номерами от left до right включительно. Задать размерность массива как...
C++ бинарный файл содержащий определенную последовательность нулей и единиц https://www.cyberforum.ru/ cpp-beginners/ thread2492383.html
как мне создать бинраник длиной скажем 6 бит, содержащий соответственно шесть рандомных бит? например 011001. Везде где что находил, там запись побайтово. Записываются определенные типы данных. А...
C++ Отсортировать 3 числа в порядке неубывания ( #define swap ) https://www.cyberforum.ru/ cpp-beginners/ thread2492375.html
Всем привет, возможно ли через #define сделать что-то подобное? #define SWAP(x,y,z) ( if ( y > z ) swap(y,z); if ( x > y ) swap(x,y); if (y > z) swap(y,z)) Чтобы не писать постоянно в main...
Класс, как сделать публичную функцию которая содержала бы приватные? C++
Как сделать в классе публичную функцию, которая бы содержала приватные функции? Давайте посмотрим на публичную функцию enter() (строка 4 и 23). Она выполняет строку 27 и на этом заканчивается. Что...
C++ Хочу научиться делать читы и совершенствоваться! https://www.cyberforum.ru/ cpp-beginners/ thread2492187.html
знаю основы с++, но есть немного того, чего не понял. хочу научиться использовать хуки, работать с памятью процессора... Кто может стать моим наставником?
3 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 21
25.08.2019, 04:16  [ТС] 0

Создать файл с € в названии - C++ - Ответ 13789143

25.08.2019, 04:16. Показов 1292. Ответов 8
Метки (Все метки)

Ответ

Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Надо, чтоб название было в unicode, у тебя в ascii. Используй std::wstring для code и m_name и

wstring name = code + L" - " + m_name + L".txt";
std::ofstream out(name);
Не получается. Накидал тестовый код. ofstream с wstring работать отказывается.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
void PrintToFile(wstring code, wstring name)
{
    wofstream out(L"C:\\Users\\uzer\\Desktop\\" + code + L" - " + name + L".txt");
    out << L"code = "   << code;
    out << L"\nname = " << name;
}
wstring returnContent(wstring& str)
{
    size_t pos1 = str.find_first_of('>');
    size_t pos2 = str.find_last_of('<');
    return str.substr(pos1 + 1, pos2 - pos1 - 1);
}
int main()
{
    //system("chcp 65001");
    wstring code, name, str, str1{ L"€125 money" };
    wstring path = L"C:/Users/uzer/Desktop/files/1.xml";
    wifstream fromFile(path);
    if (fromFile)
    {
        while (getline(fromFile, str))
        {
            if (str.find(L"<code>") != -1) code = returnContent(str);
            else if (str.find(L"<name>") != -1) name = returnContent(str);
        }
    }else wcout << L"File is not open!";
    PrintToFile(code, name);
}
1. Если передавать str1, то в название файла знак € попадает, а в текст файла нет! Первый скрин.
2. Если передавать переменную name, со спарсенными данными, то в текст файла €125 money выводится, а в названии файла вместо € попадают кракозябры.

Кликните здесь для просмотра всего текста

Ну и самое удивительное. Если работать с простыми string, то при передаче str1, всё выводится как надо, и в файл и в название! А с name всё так же, только кракозябры другие.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
void PrintToFile(string code, string name)
{
    ofstream out("C:\\Users\\uzer\\Desktop\\" + code + " - " + name + ".txt");
    out << "code = "   << code;
    out << "\nname = " << name;
}
string returnContent(string& str)
{
    size_t pos1 = str.find_first_of('>');
    size_t pos2 = str.find_last_of('<');
    return str.substr(pos1 + 1, pos2 - pos1 - 1);
}
int main()
{
    //system("chcp 65001");
    string code, name, str, str1{ "€125 money" };
    string path = "C:/Users/uzer/Desktop/files/1.xml";
    ifstream fromFile(path);
    if (fromFile)
    {
        while (getline(fromFile, str))
        {
            if (str.find("<code>") != -1) code = returnContent(str);
            else if (str.find("<name>") != -1) name = returnContent(str);
        }
    }else cout << "File is not open!";
    PrintToFile(code, str1);
}

Работаю в Visual Studio последней, Win 10. Есть идеи?

Вернуться к обсуждению:
Создать файл с € в названии C++
0
Миниатюры
Создать файл с € в названии   Создать файл с € в названии  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2019, 04:16
Готовые ответы и решения:

Удалить файл с указанной фразой в названии
В общем, у нас есть файл &quot;name_3435536362.txt&quot;. Символы &quot;3435536362&quot; у каждого пользователя свои....

Открыть файл с самой поздней датой в названии
Добрый вечер всем ! Просьба помочь в решениии такого В папке Aрхивы в корне диска D лежат Excel...

Не выходит открыть файл, в названии которого кириллица (FASM)
format PE GUI 4.0 entry start include 'win32a.inc' ;section '.data' data readable writeable...

Сохранить данные из мемо в .TXT файл а в названии поставить дату
Всем доброго расположения духа и побольше хороших впечатлений. Возникла задача сохранить данные из...

8
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2019, 04:16

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Файл record: Сведения об ученике состоят из его фамилии, имени и названии класса, в котором он учится
Помогите, пожалуйста!!! Сведения об ученике состоят из его фамилии, имени и названии класса, в...

[Fortran-90] Cоздать файл txt, в названии которого присутствуют числа, полученные ранее при расчётах
Нужно, чтобы программа создала файл txt, в названии которого должны присутствовать числа,...

Перед выполнением задания необходимо создать в рабочей папке файл SIMP.FOR. Создать командный файл с именем _E
Перед выполнением задания необходимо создать в рабочей папке файл SIMP.FOR. Создать командный файл...

Создать из программы файл целых случайных чисел. Затем создать новый файл, содержащий только числа кратные трем
Создать из программы файл целых случайных чисел. Затем создать новый файл, содержащий только числа...

Исполняющий файл .bat должен создать каталог, в этом каталоге создать файл
Помогите пожалуйста!!! создать файл расширение .bat Исполняющий файл .bat должен создать...

Создать файл F1, записать в него N чисел, а затем создать его копию - файл F2
Вроде есть все условия, но последние числа перезаписывает: #include &lt;iostream&gt; #include...

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