22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
|||||||||||
1 | |||||||||||
Std::wostream не выводит wchar_t13.06.2014, 12:00. Показов 2342. Ответов 16
Метки нет (Все метки)
Здравствуйте.
Есть кусочек кода для записи в файл. Перед ним еще похожий кусочек записывает данные из другого класса(только числа с пробелами). Так вот, когда доходит до stream.write(name, length), запись в файл прекращается. Совсем. Т.е. на следующем проходе цикла code и length уже не пишутся даже. stream<<name тоже пробовал, эффект идентичный.
Добавлено через 1 минуту Ах, да, что я делаю не так и как надо? Гугл
0
|
13.06.2014, 12:00 | |
Ответы с готовыми решениями:
16
Error: cannot bind 'std::basic_ostream<wchar_t>' lvalue to 'std::basic_ostream<wchar_t>&&'| Std::initializer_list wchar_t Std::allocator<wchar_t>>' to 'LPCWSTR' Неправильно сравнивает строки wchar_t* и std::wstring |
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
13.06.2014, 12:03 | 2 |
write() же для бинарного режима.
Ты содержимое name проверял? А флаги у потока?
0
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
||||||
13.06.2014, 13:14 [ТС] | 3 | |||||
nmcf, содержимое name проверял. Пробовал и write read и << >>, просто не пишется ничего, ни единого бита. А с флагами что может быть?
Добавлено через 6 минут Ан нет, не нормально.
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
13.06.2014, 13:16 | 4 |
Памяти выделяешь недостаточно, надо (length+1) выделять.
А calloc() для чего? Есть же new.
0
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
|
13.06.2014, 17:25 [ТС] | 5 |
nmcf, length+1 не спасает. Все равно все фэйлится. Вроде поток для wchar_t специализированный и на нем он и зависает. И информации по ошибкам же не найдешь(
А calloc, как и new, для выделения памяти. Добавлено через 24 минуты Итак, ошибка с кодом 1 и описанием ios_base::badbit set: iostream stream error. Гугл опять находит только описания класса, а про ошибки только то, что они иногда случаются. Добавлено через 3 часа 27 минут Актуально и срочно. Как исправить вывод строки?
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
13.06.2014, 19:28 | 6 | |||||
Вот это настораживает:
Тут проверьте, файл открывается или нет:
0
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
|
13.06.2014, 20:25 [ТС] | 7 |
alsav22, файл открывается и пишется до первого столкновения с wchar.
num банально не доходят руки переименовать во что-то более "универсальное".
0
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
|
13.06.2014, 21:02 [ТС] | 9 |
alsav22, во-первых, обратно из файла считывается часть данных, которая записана до ошибки, во-вторых, блокнот есть. А еще выяснилось, что эта
Добавлено через 4 минуты Хотя да, она вообще с буквами не хочет работать, только с пробелами и переводами строки.
0
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
||||||
13.06.2014, 21:30 [ТС] | 11 | |||||
0
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
|
13.06.2014, 21:40 [ТС] | 13 |
alsav22, смотрел, там L"Пшеница твердая".
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
13.06.2014, 21:54 | 14 | ||||||||||
Сообщение было отмечено inst_mefi как решение
Решение
При заходе сюда, поток рабочий?
После вот этого, поток рабочий?
Вот здесь почитайте на эту тему: http://www.rsdn.ru/forum/cpp/1853603.hot
1
|
22 / 25 / 11
Регистрация: 10.10.2013
Сообщений: 165
|
|
13.06.2014, 22:04 [ТС] | 15 |
alsav22, вылетает в исключение на stream<<name; до этого все нормально, если убрать эту строчку, тогда вообще все нормально.
Добавлено через 9 минут alsav22, благодарю, подозревал что дело именно в этом, но подобной статьи так и не нагуглилось, а консольные методы тут не работают.
0
|
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
|
|
13.06.2014, 22:12 | 16 |
Так в чём проблема была? Или она осталась?
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
13.06.2014, 22:54 | 17 |
0
|
13.06.2014, 22:54 | |
13.06.2014, 22:54 | |
Помогаю со студенческими работами здесь
17
Расстановка девяти чисел (Turbo C) Выводит ошибку using Matrix = std::array<std::array<int, 3>, 3>; и bool NextSet Ошибка E0349 Отсутствует оператор ">>" соответствующий этим операндам. тип операндов: std::ifstream >> wchar_t[32] Почему const wchar_t* воспринимается как wchar_t* ? Std::wcout не выводит сообщение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |