Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 23.04.2012, 10:53   #11
SergeyCh
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 27
Репутация: 10
По умолчанию Вывод текста на русском в файл

Пора переходить на С++11 и VC++ 2010. Этот код выводит текст на русском (точнее, на любом языке) в файл на любом компьютере -

Код HTML:
#include <iostream>
#include <fstream>
#include <codecvt>//in VC++2010 only!

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	wfstream myfile;
	
	//Note: <codecvt> was added in VC++2010 - 
	const std::locale AvailLocale
	= std::locale(std::locale("Russian"), new std::codecvt_utf8<wchar_t>());

	myfile.imbue(AvailLocale);

	myfile.open(L"c:\\Temporary\\example.txt",ios::out);
	if (myfile.is_open()) 
	{ 
		myfile << L"доброе утро" <<endl;
	} 


	myfile.flush();
	myfile.close();
	
	return 0;
}
Очень полезная статья из Нижегородского Университета -
ЛОКАЛИЗАЦИЯ КОНСОЛЬНЫХ ПРИЛОЖЕНИЙ В ЯЗЫКЕ C++
Объединив этот код с примером из статьи вы сможете вводить текст на русском (точнее на языках из Windows (ANSI) 1250-1258) с клавиатуры и записывать в файл.

Последний раз редактировалось SergeyCh; 23.04.2012 в 23:24.
SergeyCh вне форума   Ответить с цитированием
Старый 23.04.2012, 20:40   #12
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Адрес: г. Алексин, Тульская обл. Россия
Сообщений: 378
Репутация: 27

icq: 576-319-398
skype: NeoProgrammer
По умолчанию

про визуал 10 в точку. У меня просто 2005. 2010 только качается
kineziz вне форума   Ответить с цитированием
Старый 25.04.2012, 16:12   #13
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Адрес: Украина
Сообщений: 155
Репутация: 21
По умолчанию

setlocale тут не поможет - она не настраивает ввод.
Пишите так:
Код:
#include <windows.h>
Это пишите в main:
Код:
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
В консоли меняете свойство шрифт на Lucida Console.
rmv240899 вне форума   Ответить с цитированием
Старый 25.04.2012, 16:14   #14
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Адрес: Украина
Сообщений: 155
Репутация: 21
По умолчанию

Блин, опять меня опередили :-(
rmv240899 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SendMessage иероглифы !? Pozitif Помощь студентам 3 08.12.2011 21:03
MessageBox и иероглифы ImmortalAlexSan Общие вопросы C/C++ 5 10.03.2011 13:22
Вместо русских букв восточные иероглифы alexandros Microsoft Office Word 3 28.12.2010 16:22
расписание формулы заместо итогового значения dobriymart Microsoft Office Excel 5 08.12.2010 00:44
Иероглифы в Equation mitrandir Microsoft Office Word 9 25.09.2007 09:06


04:17.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.