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

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

Войти
Регистрация
Восстановить пароль
 
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Вывод wstring в файл - C++

20.07.2014, 10:23. Просмотров 636. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
bool addCategory(const std::wstring& name_category)
{
wfstream fio = initAndCheckWFSTREAM(FILENAME_CATEGORY, ios_base::app | ios_base::out); 
// инициализация fio (своя функция с некоторыми особенностями)
 
if (isFileEmpty(FILENAME_CATEGORY))
fio << "[Список категорий]:\n";
 
fio << name_category << "\n"; 
return true;
}
Оператор fio << name_category << "\n" не выполняется, соответственно никакого вывода нет и fio.fail присваивается true. В чем проблема, можно было бы грешить если бы я не создал wstring, wfstream, но по смыслу вроде бы все правильно. Подскажите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2014, 10:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод wstring в файл (C++):

Объясните, что означает wstring input = L""; и wstring output = L""; ? - C++
Непонятно особенно L&quot;&quot;.

Из string в wstring - C++
Как можно получить wstring-строку из string-строки? (символы в строке латинские, поэтому проблем вроде бы возникать не должно)

Странное поведение wstring - C++
Всем привет! Ребята, не могу понять такую ситуацию. Вставляю в wstring строку в позицию 0 таким образом ...

Wstring и файловый поток - C++
Беда за бедой, я уже 2 тему создаю. Короче из-за того, что теперь я использую вместо string Wstring не знаю, как грамотно файловый поток...

wstring to int с делемиттером - C++
Как вытащить из wstring, например такой &quot;333, 555, 666, 777, 888&quot;, инты?

Объединение переменных в wstring - C++
Всем добрый день! Подскажите как собрать, сохранить все значения переменных в строку wstring. А то собираю dll для 1c-ки,а тут одни...

7
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.07.2014, 10:40 #2
Что за initAndCheckWFSTREAM?
В каком состоянии fio.good() после его вызова?
0
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
20.07.2014, 11:20  [ТС] #3
Tulosba,

C++
1
2
3
4
5
6
7
inline wfstream initAndCheckWFSTREAM(const std::wstring &filename,
std::ios_base::openmode mode = ios_base::app)
{
    wfstream f(filename, mode);
    if (!f.is_open()) throw FileNotOpened(filename);
    return f;
}
После вызова функции initAndCheckWFSTREAM fin.good() == true, после попытки вывода name_category fin.good() == false;
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.07.2014, 11:39 #4
А если закоментировать строки:
C++
1
2
if (isFileEmpty(FILENAME_CATEGORY))
fio << "[Список категорий]:\n";
что-то изменится?
0
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
20.07.2014, 11:49  [ТС] #5
Tulosba, ничего не изменилось.
Эта проблема только с русскими символами. С ASCII символами все работает как надо.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.07.2014, 11:56 #6
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Эта проблема только с русскими символами. С ASCII символами все работает как надо.
Ну а если заменить fio на std::wcout вывод на консоль будет? Убрав, конечно, все открытия и проверку на пустоту.
P.S. для строковых литератов добавьте L в начале. Т.е. :
C++
1
fio << L"[Список категорий]:\n";
где есть вывод.
1
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
20.07.2014, 14:37  [ТС] #7
Tulosba,
C++
1
2
setlocale(0, "rus");
std::wcout << L"абвгд";
Вот так выводит в консоль, без локали не выводит ничего, точно такая же ситуация как с выводом в файл.

Добавлено через 2 часа 33 минуты
Нашел кое что интересное:

C++
1
2
3
wofstream b("zzz.txt", ios_base::app);
    b.imbue(locale("rus_rus.1251"));
    b << a;
вот так вывод работает
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2014, 17:01 #8
Как вывести в файл строку wstring с кириллицей???
1
20.07.2014, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2014, 17:01
Привет! Вот еще темы с ответами:

преобразование wstring в int - C++
Как преобразовать wstring в int

Конвертирование в wstring& - C++
Всем привет! Не могу понять почему невозможно конвертировать из wchar_t в wstring&amp; Вызов метода client -&gt; CompareTwoString(...

wstring - C++
Здраствуите ,вобщем маленькая запара ,хочу узнать возможно ли под WinApi использовать wstring вот пример в чем у меня запара wstring...

Вывод суммы в файл (файловый ввод/вывод) - C++
Добрый день! Я пытался написать программу, которая должна вводить данные из файла №1, потом вычислять их сумму и полученное значение...


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

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

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