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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Avazart
Эксперт С++
7121 / 5298 / 273
Регистрация: 10.12.2010
Сообщений: 23,439
Записей в блоге: 17
#1

std::string -> std::wstring - C++

05.07.2012, 23:12. Просмотров 1786. Ответов 8
Метки нет (Все метки)

Как перевести данный код в код с использованием wstring ( посути использовать std::vector<std::wstring> refs; )

C++
1
2
3
4
5
#include <vector>
#include <string>
#include <fstream>
#include <iterator>
std::vector<std::string> refs;
C++
1
2
3
4
5
6
7
8
std::string file_name="Результат.txt";
std::ofstream ofs1(file_name.c_str());
if(ofs1)
   {
    std::ostream_iterator<std::string>b(ofs1,"\n");
    std::copy(refs.begin(),refs.end(),b);
    ofs1.close();
   }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 23:12     std::string -> std::wstring
Посмотрите здесь:

Конвертация символов в std::wstring - C++
Привет. Помогите пожалуйста, как cконвертировать символы unicode, лежащие в std::wstring, в ANSI Codepage 1251? Добавлено через 1...

Как вывести std::wstring в поток? - C++
Как вывести std::wstring в поток, если в строке есть кириллица?

Считать с потока строку в std::wstring - C++
Есть ли аналог std::string str; getline(cin,str); для std::wstring ???

Загрузка UTF-8 без BOM в std::wstring - C++
Есть файл в UTF-8 без BOM. Как его лучше загрузить целиком в std::wstring? ...

Как грамотно сконвертировать float в std::wstring? - C++
:) ?

Можно ли читать UTF8 в std::wstring потоком? - C++
Интересует загрузка файла целиком.

Как узнать размер std::wstring в байтах? - C++
:) ну как бэ вопрос в шапке :)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.07.2012, 00:17     std::string -> std::wstring #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vector>
#include <string>
#include <fstream>
#include <iterator>
std::vector<std::wstring> refs;
std::string file_name="Результат.txt";
std::wofstream ofs1(file_name.c_str());
if(ofs1)
   {
    std::ostream_iterator<std::wstring>b(ofs1,"\n");
    std::copy(refs.begin(),refs.end(),b);
    ofs1.close();
   }
Avazart
Эксперт С++
7121 / 5298 / 273
Регистрация: 10.12.2010
Сообщений: 23,439
Записей в блоге: 17
06.07.2012, 00:21  [ТС]     std::string -> std::wstring #3
Пробовал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::vector<std::wstring> refs;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::string file_name="Результат.txt";
std::wofstream ofs1(file_name.c_str());
if(ofs1)
   {
    std::ostream_iterator<std::wstring>b(ofs1,"\n");// !!! Could not find a match for 'std::ostream_iterator<std::wstring,char,std::char_traits<char> >::ostream_iterator(std::wofstream,const wchar_t *)'
    std::copy(refs.begin(),refs.end(),b);
    ofs1.close();
   }
}
//---------------------------------------------------------------------------
Builder2009
Код
[BCC32 Error] Unit1.cpp(72): E2285 Could not find a match for 'std::ostream_iterator<std::wstring,char,std::char_traits<char> >::ostream_iterator(std::wofstream,const wchar_t *)'
Наверное стоит попробывать на другом компиляторе...
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.07.2012, 00:25     std::string -> std::wstring #4
Ну тогда так.

C++
1
std::ostream_iterator<std::wstring, wchar_t, std::char_traits<wchar_t>>
Avazart
Эксперт С++
7121 / 5298 / 273
Регистрация: 10.12.2010
Сообщений: 23,439
Записей в блоге: 17
06.07.2012, 00:28  [ТС]     std::string -> std::wstring #5
Ага ...
C++
1
2
3
4
5
6
7
8
9
10
std::string file_name="Результат.txt";
std::wofstream ofs1(file_name.c_str());
if(ofs1)
   {
       //std::ostream_iterator<std::wstring>b(ofs1,"\n");
      std::ostream_iterator<std::wstring, wchar_t, std::char_traits<wchar_t> > b(ofs1,L"\n");
      std::copy(refs.begin(),refs.end(),b);
      ofs1.close();
   }
}
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.07.2012, 00:28     std::string -> std::wstring #6
Avazart, Кстати явное указание std::char_traits<wchar_t> можно убрать.
Avazart
Эксперт С++
7121 / 5298 / 273
Регистрация: 10.12.2010
Сообщений: 23,439
Записей в блоге: 17
06.07.2012, 00:33  [ТС]     std::string -> std::wstring #7
Понял, нужно было просто знать std::char_traits<wchar_t>, а я почему то сначала пытался найти
std::wostream_iterator по аналогии
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
06.07.2012, 10:02     std::string -> std::wstring #8
Avazart, Ну вообще как ни странно std::wofstream это typedef типа std::basic_ofstream<wchar_t, std::char_traits<wchar_t>>, std::wstring typedef типа std::basic_string<wchar_t, std::char_traits<wchat_t>, std::allocator<wchat_t>>.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2012, 16:20     std::string -> std::wstring
Еще ссылки по теме:

Поиск информации в переменной типа std::wstring - C++
Этот код определяет видеокартку которая на компе стоит но данныен выводит в незнакомом мне виде немого преобразовать вывод в стринг Как...

Неправильно сравнивает строки wchar_t* и std::wstring - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;string&gt; using namespace std; wchar_t str =...

Как получить код символа unicode в std::wstring? - C++
Собственно есть QString (Qt), из него конечно же могу получить std::wstring. Так вот, нужен код каждого символа и желательно, чтоб этот...

Как использовать std::wstring для удаление файлов - C++
Если можно, пожалуйста, приведите код.

Как сравнить первые 3 символа std::wstring строк ? :-) - C++
Есть две строки: 1. &quot;ПРЕВЕД&quot; 2. &quot;ПРОВОД&quot; Хочу узнать, совпадают ли у них первые три символа или нет... :) Добавлено через 8...


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

Или воспользуйтесь поиском по форуму:
Avazart
Эксперт С++
7121 / 5298 / 273
Регистрация: 10.12.2010
Сообщений: 23,439
Записей в блоге: 17
06.07.2012, 16:20  [ТС]     std::string -> std::wstring #9
Ну вообще то для меня не странно...
Другое дело std::ostream_iterator, а шаблон я видел, но не догадался подставить wchar_t
Yandex
Объявления
06.07.2012, 16:20     std::string -> std::wstring
Ответ Создать тему
Опции темы

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