Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль

Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!

Здравствуйте, гость ( Вход | Регистрация )



85 страниц V < 1 2 3 4 > »   
Ответить в эту темуОткрыть новую тему
> Язык Си/С++, вопросы и ответы
КостяМХ
сообщение 10.10.2008, 17:30
Сообщение #21


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 62
Регистрация: 22.9.2008
Пользователь №: 50 743



Репутация:   3  


Цитата(Const @ 10.10.2008, 17:24) *

Эх... Не всегда... Мы в этом году начали изучать C++, дали нам задания, а теорию даже не объяснили...

М... А мне дают всегда на порядок сложнее чем всем, так как уже знаком с Си.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ktak
сообщение 11.10.2008, 1:14
Сообщение #22


Технический специалист
Group Icon


Группа: VIP
Сообщений: 1 354
Регистрация: 18.12.2006
Из: Новосибирск
Пользователь №: 18



Репутация:   124  


Цитата(Const @ 10.10.2008, 17:24) *

Эх... Не всегда... Мы в этом году начали изучать C++, дали нам задания, а теорию даже не объяснили...

Правильный, жизненный, подход, если вас до этого успели на другом языке поучить.
Надо решить задачу, решай!
Никто тебе в реале не будет объяснять, как что-то делать.
Ищи книжки, используй гугл и вперёд. Только так можно научиться.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Dickobraz
сообщение 13.10.2008, 12:08
Сообщение #23


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 18
Регистрация: 22.7.2008
Пользователь №: 41 678



Репутация:   0  


Цитата(Const @ 9.10.2008, 17:05) *

А я по-русски писал с помощью собственной функции smile.gif
Код
void printrus(char str[256])
{
    int i=0;
    while (str[i]!=0)
    {
        if (str[i]>='А'&&str[i]<='п') printf("%c", str[i]+192);
        else
            if (str[i]>='р'&&str[i]<='я') printf("%c", str[i]+240);
            else printf("%c", str[i]);
        i++;
    }
}

...
printrus("Привет!");
...




А что, никто не читает MSDN:
setlocale( LC_ALL, "Russian" );
вот вам и русский в консоли...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ktak
сообщение 13.10.2008, 12:20
Сообщение #24


Технический специалист
Group Icon


Группа: VIP
Сообщений: 1 354
Регистрация: 18.12.2006
Из: Новосибирск
Пользователь №: 18



Репутация:   124  


Цитата(Dickobraz @ 13.10.2008, 12:08) *

А что, никто не читает MSDN:
setlocale( LC_ALL, "Russian" );
вот вам и русский в консоли...

Вау! Не знал, что Windows знает про локали. А как в винде посмотреть, что такое "Russian"? Если программа с этим рецептом заработает, то подозреваю, что "Russian" - это алиас для "ru_RU.CP1251"? А трансляция программ через локали в винде работает? А VisualStudio через локали трансляцию делает?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 13.10.2008, 13:23
Сообщение #25


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 723
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(КостяМХ @ 10.10.2008, 16:30) *

М... А мне дают всегда на порядок сложнее чем всем, так как уже знаком с Си.

Как громко сказано, тогда уж задачки покажи biggrin.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Dickobraz
сообщение 13.10.2008, 18:10
Сообщение #26


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 18
Регистрация: 22.7.2008
Пользователь №: 41 678



Репутация:   0  


Цитата(Ktak @ 13.10.2008, 11:20) *

Вау! Не знал, что Windows знает про локали. А как в винде посмотреть, что такое "Russian"? Если программа с этим рецептом заработает, то подозреваю, что "Russian" - это алиас для "ru_RU.CP1251"? А трансляция программ через локали в винде работает? А VisualStudio через локали трансляцию делает?


отвечу ссылочно: setlocale (MSDN)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mim
сообщение 15.10.2008, 11:42
Сообщение #27


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 15
Регистрация: 28.12.2007
Пользователь №: 14 944



Репутация:   0  


Вот программа небольшая - перекодировщик, под "Windows" писал, очень давно.
__file__
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
КостяМХ
сообщение 16.10.2008, 13:30
Сообщение #28


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 62
Регистрация: 22.9.2008
Пользователь №: 50 743



Репутация:   3  


Цитата(mim @ 15.10.2008, 11:42) *

Вот программа небольшая - перекодировщик, под "Windows" писал, очень давно.
__file__

Тут слишком много текста, преподователь сказал там не более 3 строк, просто подключение чегото, и описание и всё...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mim
сообщение 16.10.2008, 16:14
Сообщение #29


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 15
Регистрация: 28.12.2007
Пользователь №: 14 944



Репутация:   0  


В Windows я не знаю что подключать, какую библиотеку,
или заглавный файл.

Скажи преподавателю. что Мы в "Linux" используем функцию iconv:

NAME
iconv - perform character set conversion.
SYNOPSIS
#include <iconv.h>

size_t iconv(iconv_t cd,
char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft);
... и так далее.
В системе Linux читай "man-страницу" -
man 3 iconv.

Есть программа "iconv", она состоит не из 3 строк, а из 30 файлов.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mim
сообщение 16.10.2008, 16:50
Сообщение #30


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 15
Регистрация: 28.12.2007
Пользователь №: 14 944



Репутация:   0  


Какой Вы компилятор используете, если "Turbo C" то я в нем
совершенно не разбираюсь. В нем свои библиотеки, под "DOS",
соответственно и дополнительные заголовочные файлы могут быть.

Если компилятор "Visual C++ 6", то можно еще подключить файл
"wincon.h" (или "windows.h").
Функция
BOOL SetConsoleCP(UINT wCodePageID);
устанавливает кодовую страницу ввода.

Посмотри этот файл - "wincon.h" - там много интересного,
в "MSDN" все функции подробно описаны, с подробными
примерами, оттуда все спиши.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
горынычь
сообщение 16.10.2008, 17:09
Сообщение #31


Молчун
Group Icon


Группа: Пользователи
Сообщений: 85
Регистрация: 14.10.2008
Пользователь №: 54 902



Репутация:   15  


помогите провести кодировку этого числа(23061992) в 16 8 и 2 кодировку.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
КостяМХ
сообщение 16.10.2008, 17:20
Сообщение #32


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 62
Регистрация: 22.9.2008
Пользователь №: 50 743



Репутация:   3  


Цитата(горынычь @ 16.10.2008, 17:09) *

помогите провести кодировку этого числа(23061992) в 16 8 и 2 кодировку.

23061992 = 1010111111110010111101000 в 2-й
23061992 = 127762750 в 8-й
23061992 = 15FF5E8 в 16-й
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
горынычь
сообщение 16.10.2008, 22:52
Сообщение #33


Молчун
Group Icon


Группа: Пользователи
Сообщений: 85
Регистрация: 14.10.2008
Пользователь №: 54 902



Репутация:   15  


костяMX спасибо большое!!!!!!!


костяMX спасибо большое!!!!!!!


костяMX спасибо большое!!!!!!!


костяMX спасибо большое!!!!!!!

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
КостяМХ
сообщение 16.10.2008, 22:55
Сообщение #34


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 62
Регистрация: 22.9.2008
Пользователь №: 50 743



Репутация:   3  


Цитата(mim @ 16.10.2008, 16:50) *

Какой Вы компилятор используете, если "Turbo C" то я в нем
совершенно не разбираюсь. В нем свои библиотеки, под "DOS",
соответственно и дополнительные заголовочные файлы могут быть.

Если компилятор "Visual C++ 6", то можно еще подключить файл
"wincon.h" (или "windows.h").
Функция
BOOL SetConsoleCP(UINT wCodePageID);
устанавливает кодовую страницу ввода.

Посмотри этот файл - "wincon.h" - там много интересного,
в "MSDN" все функции подробно описаны, с подробными
примерами, оттуда все спиши.

У нас не С++ у нас просто Си среда minGW, если было бы Visual C++ 6 то там проблем бы не было... просто мне уже надоедат всё на ломаном английском строчить, жутко не удобно
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SiV@N
сообщение 16.10.2008, 23:26
Сообщение #35


Болтун
Group Icon


Группа: Программисты
Сообщений: 711
Регистрация: 23.6.2007
Из: Рубцовск
Пользователь №: 609



Репутация:   41  


Цитата(Ktak @ 13.10.2008, 11:20) *

Вау! Не знал, что Windows знает про локали. А как в винде посмотреть, что такое "Russian"? Если программа с этим рецептом заработает, то подозреваю, что "Russian" - это алиас для "ru_RU.CP1251"? А трансляция программ через локали в винде работает? А VisualStudio через локали трансляцию делает?

нет в венде ни каких локалейsmile.gif
я так от проблем с кодировкой в консольных приложениях избавлялся:
Код
#include <windows.h>
SetConsoleCP(1251);
SetConsoleOutputCP(1251);


» Спасибо сказали: «
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Dickobraz
сообщение 16.10.2008, 23:59
Сообщение #36


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 18
Регистрация: 22.7.2008
Пользователь №: 41 678



Репутация:   0  


Цитата(SiV@N @ 16.10.2008, 22:26) *

нет в венде ни каких локалейsmile.gif
я так от проблем с кодировкой в консольных приложениях избавлялся:
Код
#include <windows.h>
SetConsoleCP(1251);
SetConsoleOutputCP(1251);



это переключает кодовую страницу консоли, setlocale делает конвертацию. это аналог команды chcp

Сообщение отредактировал Dickobraz - 17.10.2008, 0:00
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
КостяМХ
сообщение 17.10.2008, 0:09
Сообщение #37


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 62
Регистрация: 22.9.2008
Пользователь №: 50 743



Репутация:   3  


Цитата(SiV@N @ 16.10.2008, 23:26) *

нет в венде ни каких локалейsmile.gif
я так от проблем с кодировкой в консольных приложениях избавлялся:
Код
#include <windows.h>
SetConsoleCP(1251);
SetConsoleOutputCP(1251);


У меня что то не получается, можешь показать пример простой программы чтобы печатала ПРИВЕТ.
Спасибо
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SiV@N
сообщение 17.10.2008, 9:46
Сообщение #38


Болтун
Group Icon


Группа: Программисты
Сообщений: 711
Регистрация: 23.6.2007
Из: Рубцовск
Пользователь №: 609



Репутация:   41  


Что не получается?
Код

#include <iostream>
#include <windows.h>

using namespace std;
int main(int argc, char** argv)
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
    cout >> "Привет";
}

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ktak
сообщение 17.10.2008, 12:31
Сообщение #39


Технический специалист
Group Icon


Группа: VIP
Сообщений: 1 354
Регистрация: 18.12.2006
Из: Новосибирск
Пользователь №: 18



Репутация:   124  


Цитата(КостяМХ @ 16.10.2008, 22:55) *

У нас не С++ у нас просто Си среда minGW, если было бы Visual C++ 6 то там проблем бы не было... просто мне уже надоедат всё на ломаном английском строчить, жутко не удобно

Если у вас minGW, то там обязан быть iconv, который советовал mim: http://forum.sibnet.ru/index.php?s=&sh...t&p=1597035
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Dickobraz
сообщение 17.10.2008, 12:35
Сообщение #40


Молчун
Group Icon


Группа: Sibnet-club
Сообщений: 18
Регистрация: 22.7.2008
Пользователь №: 41 678



Репутация:   0  


Цитата(SiV@N @ 17.10.2008, 8:46) *

Код

...
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
...



Так работать не будет если в консольном окне стоит "точечный шрифт", если поставить "Lucida console", то все нормально. Чтоб этим не заморачиваться, пишем так:
Код

#include <iostream>
#include <windows.h>

using namespace std;
int main(int argc, char** argv)
{
        setlocale( LC_ALL, "Russian" );
    cout >> "Привет";
}

Функция SetConsoleCP устанавливает кодовую страницу ввода, используемую консолью, связанной с вызывающим процессом. Консоль использует свою кодовую страницу ввода, чтобы преобразовывать ввод информации с клавиатуры в соответствующие символьные значения.

Функция SetConsoleOutputCP устанавливает кодовую страницу вывода данных, используемую консолью, связанной с вызывающим процессом. Консоль использует свою кодовую страницу вывода данных, чтобы преобразовать символьные значения, написанные различными функциями вывода информации в изображение, показываемое на экране в консольном окне.
Кодовая страница преобразует 256 кодов букв в индивидуальные символы. Разные кодовые страницы включают в себя разные специальные символы, обычно настраиваемые для языка или группы языков. Если текущий шрифт - моноширинный шрифт Уникода, функция SetConsoleOutputCP изменяет начертание символьных значений в установку глифов шрифта, а не загружает отдельный шрифт каждый раз, когда он вызывается. Это влияет на образ расширенных символов (значение ASCII больше, чем 127), которые отображаются в консольном окне. Однако, если текущий шрифт является растровым шрифтом, SetConsoleOutputCP не влияет на то, как расширенные символы отображаются.

Сообщение отредактировал Dickobraz - 17.10.2008, 12:50
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

85 страниц V < 1 2 3 4 > » 
Ответить в эту темуОткрыть новую тему
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 21.7.2019, 3:57
Редакция: (383) 347-86-84

Техподдержка: (383) 347-22-44
help.sibnet.ru
Размещение рекламы:
тел: (383) 347-06-78, 347-10-50

Правила использования материалов