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

опять о шрифтах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск слов в файле http://www.cyberforum.ru/cpp-beginners/thread151235.html
есть файл с текстом, нужно написать програму которая пригласит пользователя ввести слово и будет выводить предложения из файла в которых присудствует данное слово!!!
C++ Осуществить вывод строк из файла, используя массив указателей на эти строки "Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. " вывод надо осуществлять с помощью массива указателей. #include <stdio.h> #include <iostream> #include <fstream> #include <clocale> using namespace std; void readf(int *pk, char** pSTRS, char fName,bool *flag1) http://www.cyberforum.ru/cpp-beginners/thread151208.html
Как в функцию быстрой сортировки передать указатель на StringGrid? C++ Builder
Доброго времени суток. Возник вопрос, как в функцию быстрой сортировки (метод Хоара), передать указатель на StringGrid. Хочу сделать сортировку в столбце, а вот как передать указатель, ни как понять не могу. void __fastcall TForm1::Button1Click(TObject *Sender) { QuickSort( , 0, StringGrid1->RowCount); } //--------------------------------------------------------------------------- int...
Инкремент. Где ошибка C++
Привет, помогите плз с кодом, некорректный результат инкремента..( #include "stdafx.h" #include <iostream> using namespace std; class SimpleCircle { public: //конструкторы
C++ Добавить класс в программу http://www.cyberforum.ru/cpp-beginners/thread151184.html
С классами совсем не знаком, поэтому обращаюсь к Вам) Требуется присутствие класса в коде. вот сам код: #include<conio.h> #include<stdio.h> #include<stdio.h>
C++ Си, использование вложенных файлов *.c Всем доброго времени дня! Вопрос: Пишу программу на C под Linux. есть файл main.c, в котором у меня располагается основное тело программы, функции итд... Но считаю это избыточным, хочу функции вывести в другой сишный файл, к примеру utils.c... Как использовать функции в utils.c вызывая их из main.c? В main.c делал #include <utils.c>, но не помогло...Прописывал в utils.c вначале все... подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.07.2010, 22:55     опять о шрифтах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include "cp866.h"
 
int main()
{
   std::locale rus(std::locale(), new cp866()); // 1
   std::ios_base::sync_with_stdio(false);       // 2
   
   std::cout.imbue(rus);                        // 3
 
   std::string str = "абвгд";
   std::cout << str << std::endl;
 
   return 0;
}
1. Где-то прочитал, что в большинстве реализаций не существует, как таковых нестандартных локал-объектов (кроме POSIX-locale), так что в качестве выхода необходимо применить свою реализацию. Примерную реализацию можно посмотреть здесь
cpp866.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
 
#include <windows.h>
 
class cp866 : public std::codecvt <char, char, std::mbstate_t> {
public:
   explicit cp866 ( size_t r = 0 ) : std::codecvt <char, char, std::mbstate_t> ( r ) {}
 
protected:
   result do_in ( state_type&, const char* from, const char* from_end, const char*& from_next, char* to, char*, char*& to_next ) const {
      const int size = from_end - from;
      ::OemToCharBuff ( from, to, size );
 
      from_next = from + size;
      to_next = to + size ;
 
      return ok;
   }
 
   result do_out ( state_type&, const char* from, const char* from_end, const char*& from_next, char* to, char*, char*& to_next ) const {
      const int size = from_end - from;
      ::CharToOemBuff ( from, to, size );
 
      from_next = from + size;
      to_next = to + size ;
 
      return ok;
   }
 
   result do_unshift ( state_type&, char*, char*, char*& ) const { return ok; }
   int do_encoding () const throw () { return 1; }
   bool do_always_noconv () const throw () { return false; }
 
   int do_length ( state_type& state, const char* from, const char* from_end, size_t max ) const {
      return std::codecvt <char, char, std::mbstate_t>::do_length ( state, from, from_end, max );
   }
 
   int do_max_length () const throw () {
      return std::codecvt <char, char, std::mbstate_t>::do_max_length ();
   }
};

2. Выключение синхронизации locale с stdio. В принципе у меня локаль работает и без этой строки, но все может быть.
3. Установка связки "локаль-поток", понятное дело что связывать надо только нужные потоки.

вроде бы все. способ чудесно работает для всех видов ввода и вывода
 
Текущее время: 19:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru