Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2012, 21:35   #171
ITTI
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 65
По умолчанию

вау, а круто получается, когда:
SetConsoleOutputCP();
SetConsoleCP();
ITTI вне форума Ответить с цитированием
Старый 04.01.2012, 21:43   #172
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от ITTI Посмотреть сообщение
получилось что-то очень стремное.
Для того, что бы русские буквы качественно выводились нужно две вещи:
1. Настроить кодировку (см код выше)
2. Настроить шрифт самой консольки.

Вот здесь поподробнее:
1. скомпилируй и запусти программульку. Появится убогое чорное окошечко.

2. Подведи крысиный курсор к заголовку окошка.
3. Жми правый батон на крысе.

Появится менюшка. В этом меню выбери "свойства".
Дальше открой вкладку "шрифт". И из списка возможных шрифтов выбери
шрифт под названием Lusida console

Потом везде жми ok, сохранить для всех окошек.

4. Снова запусти программку, на этот раз должны вывестись красивые русские буквы
_Bers вне форума Ответить с цитированием
Старый 04.01.2012, 21:49   #173
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от ITTI Посмотреть сообщение
6. void error(string s1, string s2){
throw runtime_error(s1+s2);}
"в стандартной библиотеке определено несколько типов исключений, таких как out_of_range, генерируемых классом vector...также в этой библ есть runtime_error" и т.п. у меня в векторе, по-моему, ничего нету.
Ой.. ты если ещё классы не знаешь, то лучше вообще пока не лезть в работу с исключениями. Эта тема "традиционно сложная"(ц)

А я лично вообще стараюсь писать код так, что бы не работать с исключениями. Нужна очень веская причина, что бы мой класс бросил исключение.
_Bers вне форума Ответить с цитированием
Старый 04.01.2012, 22:04   #174
ITTI
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 65
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Для того, что бы русские буквы качественно выводились нужно две вещи:
1. Настроить кодировку (см код выше)
2. Настроить шрифт самой консольки.
копирую вот тот твой код. выполняю, потом нажимаю вот те с-ва и т.п., что написал, для всех окошек - в итоге, тоже самое, только не такое крупное. я не виновата.
не лезть нельзя, глава такая, "ошибки" называется. я то, что написано, поняла, но программы сами не получается(в смысле те, к-рые в примерах). библиотеки, указанные, не подключаются и т.п.
классы, шаблоны, деструкторы, конструкторы, че-то там динамическое - все когда-то(лет сто назад) учила, но было больше теории, чем практики, вот мозг и высох.
#ifndef _WINCON_H
#define _WINCON_H
#if __GNUC__ >= 3
#pragma GCC system_header
#endif

#ifdef __cplusplus
extern "C" {
#endif

#define FOREGROUND_BLUE 1
#define FOREGROUND_GREEN 2
#define FOREGROUND_RED 4
#define FOREGROUND_INTENSITY 8
#define BACKGROUND_BLUE 16
#define BACKGROUND_GREEN 32
#define BACKGROUND_RED 64
#define BACKGROUND_INTENSITY 128
#if (_WIN32_WINNT >= 0x0501)
#define CONSOLE_FULLSCREEN_MODE 1
#define CONSOLE_WINDOWED_MODE 0
#endif
#define CTRL_C_EVENT 0
#define CTRL_BREAK_EVENT 1
#define CTRL_CLOSE_EVENT 2
#define CTRL_LOGOFF_EVENT 5
#define CTRL_SHUTDOWN_EVENT 6
#define ENABLE_LINE_INPUT 2
#define ENABLE_ECHO_INPUT 4
#define ENABLE_PROCESSED_INPUT 1
#define ENABLE_WINDOW_INPUT 8
#define ENABLE_MOUSE_INPUT 16
#define ENABLE_PROCESSED_OUTPUT 1
#define ENABLE_WRAP_AT_EOL_OUTPUT 2
#define KEY_EVENT 1
#define MOUSE_EVENT 2
#define WINDOW_BUFFER_SIZE_EVENT 4
#define MENU_EVENT 8
#define FOCUS_EVENT 16
#define CAPSLOCK_ON 128
#define ENHANCED_KEY 256
#define RIGHT_ALT_PRESSED 1
#define LEFT_ALT_PRESSED 2
#define RIGHT_CTRL_PRESSED 4
#define LEFT_CTRL_PRESSED 8
#define SHIFT_PRESSED 16
#define NUMLOCK_ON 32
#define SCROLLLOCK_ON 64
#define FROM_LEFT_1ST_BUTTON_PRESSED 1
#define RIGHTMOST_BUTTON_PRESSED 2
#define FROM_LEFT_2ND_BUTTON_PRESSED 4
#define FROM_LEFT_3RD_BUTTON_PRESSED 8
#define FROM_LEFT_4TH_BUTTON_PRESSED 16
#define MOUSE_MOVED 1
#define DOUBLE_CLICK 2
#define MOUSE_WHEELED 4

typedef struct _CHAR_INFO {
union {
WCHAR UnicodeChar;
CHAR AsciiChar;
} Char;
WORD Attributes;
} CHAR_INFO, *PCHAR_INFO;
typedef struct _SMALL_RECT {
SHORT Left;
SHORT Top;
SHORT Right;
SHORT Bottom;
} SMALL_RECT, *PSMALL_RECT;...
круто, так что это?
ITTI вне форума Ответить с цитированием
Старый 04.01.2012, 22:10   #175
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от ITTI Посмотреть сообщение
копирую вот тот твой код. выполняю, потом нажимаю вот те с-ва и т.п., что написал, для всех окошек - в итоге, тоже самое, только не такое крупное. я не виновата.
У тебя точно Windows ?

Ещё, возможно, это связанно с тем, что ты пишешь не в студии, а в какой то другой IDE

Цитата:
Сообщение от ITTI Посмотреть сообщение
не лезть нельзя, глава такая, "ошибки" называется. я то, что написано, поняла, но программы сами не получается(в смысле те, к-рые в примерах). библиотеки, указанные, не подключаются и т.п.
Нужно отработать приёмы разные на реальных простеньких задачках
_Bers вне форума Ответить с цитированием
Старый 05.01.2012, 12:07   #176
ITTI
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 65
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Вот в простейшей реализации, без проверок на ошибки и прочего, только чтобы суть была ясна.
что за функция inp.c_str() и какое значение вот это принимает atoi(inp.c_str())?
ITTI вне форума Ответить с цитированием
Старый 05.01.2012, 12:17   #177
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от ITTI Посмотреть сообщение
что за функция inp.c_str() и какое значение вот это принимает atoi(inp.c_str())?
c_str() возвращает C-совместимую строку, соответствующую той, что хранится в string. Другими словами возвращает указатель на массив символов с терминирующим нулём (const char*).
atoi("132"); вернёт int, равный 132-м, то бишь преобразует строку в int.
Если смущает использования класса string, вот без него: http://ideone.com/0qbKZ
netrino вне форума Ответить с цитированием
Старый 05.01.2012, 12:19   #178
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от ITTI Посмотреть сообщение
что за функция inp.c_str() и какое значение вот это принимает atoi(inp.c_str())?
inp - это экземпляр класса std::string, он содержит строчку.

Для него запускается метод: c_str(), который возвращает указатель на массив строки.

Таким образом, inp.c_str() -вернёт строку в c-style

тобишь, const char* str , где str - указатель на массив символов строки

atoi() - функция, которая принимает на входе строку c-style

Её прототип выглядит вот так: int atoi ( const char * str );

Таким образом строка в стиле с++ inp передаёт atoi() требуемую ей строку в стиле си.

Принимает на входе строковое представление числа, а возвращает само число

http://www.cplusplus.com/reference/c.../cstdlib/atoi/
_Bers вне форума Ответить с цитированием
Старый 05.01.2012, 12:46   #179
ITTI
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 65
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
У тебя точно Windows ?
точно. я настроила.
так есть "std_lib_facilities.h"? и где он?
Изображения
Тип файла: jpg русский для Dev-C++.jpg (186.2 Кб, 108 просмотров)
ITTI вне форума Ответить с цитированием
Старый 05.01.2012, 13:08   #180
ITTI
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 65
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
c_str() возвращает C-совместимую строку
почему, когда отключаю <cstdlib>, все работает?
"с" впереди означает, что библиотеки для си? а они могут не работать в с++?
ITTI вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PopupMenu со мной не дружит Жигилий_Ульяна Компоненты Delphi 5 25.12.2008 11:04
проблемы с select или со мной... smoke888 JavaScript, Ajax 2 23.09.2008 19:02