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

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

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

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

05.07.2012, 23:12. Просмотров 1809. Ответов 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();
   }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 23:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std::string -> std::wstring (C++):

Как правильно перевести std::wstring в std::string ? - C++
Собственно как? :)

Как привести std::wstring к std::string? - C++
Как привести std::wstring к std::string?

Std::string and std::wstring convert - C++
случайно наткнулся на такую вот конвертацию std::string в std::wstring std::string text(&quot;text&quot;); ...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

8
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
06.07.2012, 00:17 #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();
   }
1
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
06.07.2012, 00:21  [ТС] #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 *)'
Наверное стоит попробывать на другом компиляторе...
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
06.07.2012, 00:25 #4
Ну тогда так.

C++
1
std::ostream_iterator<std::wstring, wchar_t, std::char_traits<wchar_t>>
1
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
06.07.2012, 00:28  [ТС] #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();
   }
}
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
06.07.2012, 00:28 #6
Avazart, Кстати явное указание std::char_traits<wchar_t> можно убрать.
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
06.07.2012, 00:33  [ТС] #7
Понял, нужно было просто знать std::char_traits<wchar_t>, а я почему то сначала пытался найти
std::wostream_iterator по аналогии
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
06.07.2012, 10:02 #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>>.
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
06.07.2012, 16:20  [ТС] #9
Ну вообще то для меня не странно...
Другое дело std::ostream_iterator, а шаблон я видел, но не догадался подставить wchar_t
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2012, 16:20
Привет! Вот еще темы с ответами:

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Почему std::string_view МЕДЛЕННЕЕ, чем std::string? - C++
Всем привет! Нужно найти количество уникальных строк в больших текстовых файлах (размером до нескольких гигабайт). Почему в...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
06.07.2012, 16:20
Ответ Создать тему
Опции темы

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