Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обучение и начало програмирования на С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

wiwiw

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по-моему в этом топике должна обсуждаться литература для начинающих.
для вопросов по программированию на С++ есть отдельный топик.

Всего записей: 127 | Зарегистр. 20-03-2004 | Отправлено: 17:40 07-03-2005
Key_Altos



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wiwiw
Тема называется "Обучение и начало програмирования на С++", хотя ты в принципе прав... Но тут идут вопросы, относящиеся к самому началу программирования и они будут несколько не к месту в том топике.

Всего записей: 290 | Зарегистр. 12-09-2004 | Отправлено: 17:50 07-03-2005
Stroodder



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А по-моему в топике шапочка должна быть...
Как ее соорудить в теме созданой не мной я лично не знаю, если кто знает (ну модератор на досуге может быть  ) так было бы очень хорошо: все ссылочки туда можно закинуть.

----------
Шерше ля варез...

Всего записей: 666 | Зарегистр. 21-10-2004 | Отправлено: 20:38 07-03-2005
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Stroodder

Цитата:
Как ее соорудить в теме созданой не мной я лично не знаю, если кто знает  

Toлько модератор и может.
Кинь ему в ПМ предложение.

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 21:56 07-03-2005
distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://langs.icf.bofh.ru/c/starterkit.html
 
Андрей Богатырев. Руководство полного идиота
 по программированию (на языке Си)
 
)) без всякой задней мысли относитеольно названия.
 
как человек пишет - у-у-у, зачитаешься...
 
цитата:
 
x = 15 ;
 
     |
     |
     | ПОЛОЖИТЬ результат в ящик с именем "ИКС"
     | (истребив в нем прежнее значение, если было)
 
)) явно наблюдается литературный талант

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 03:14 08-03-2005
Stroodder



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance
Мдя после такого руководства нормальные термины понимать перестанешь

----------
Шерше ля варез...

Всего записей: 666 | Зарегистр. 21-10-2004 | Отправлено: 07:27 08-03-2005
Key_Altos



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance
ЛОЛ!!

----------
Добро побеждает зло. Аксиома.
Значит кто победил, тот - добрый!

Всего записей: 290 | Зарегистр. 12-09-2004 | Отправлено: 19:29 08-03-2005
Dogmatek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня не отображаются русские буквы в скомпилированных программах, а вместо них кряказяблы  
как это решить?

Всего записей: 44 | Зарегистр. 25-01-2005 | Отправлено: 00:12 09-03-2005
distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dogmatek
а у меня дома почему-то происходит подземный стук. как лечить?
 
ps. для начала было бы неплохо привести больше сведений.
программа юникодовая? строки жестко "зашиты" в программу или приходят извне? в какой кодировке исходник? юзаются потоки или c runtime? console или gui?
в зависимости от вариантов ответов, отца русской демократии спасет setlocale/cout.imbue или CharToOem,  mbstowcs и иже с ними.
 
полезно также заглянуть сюда

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 02:45 09-03-2005
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance

Цитата:
полезно также заглянуть сюда

Да, для консольных приложений CharToOem всегда помогает...

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 10:01 09-03-2005
Duke Shadow



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
CharToOem неудобен тем, что для него нужен буфер. Например, для того чтобы нормально вывести строчку "Ошибка" вместо cout<<"Ошибка"; приходится уже извращаться - крайне неудобно.
 
distance

Цитата:
setlocale/cout.imbue

А вот отсюда подробнее можно?

----------
Тот, кто умеет - делает, кто не умеет - учит(с)Б. Шоу
Войны никого не могут сделать великим(с)магистр Йода
Аватар(c)MindDiver

Всего записей: 3912 | Зарегистр. 15-02-2003 | Отправлено: 12:53 09-03-2005
Interceptr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди есть какаянибудь не грамоская инфа чтоб быстро освоить захват данных из форм в с++ от мелкомягких? (мне все говарят что это в хламину сложно);

Всего записей: 16 | Зарегистр. 09-01-2005 | Отправлено: 12:55 09-03-2005
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Duke Shadow

Цитата:
CharToOem неудобен тем, что для него нужен буфер

Так Dogmatek не ответил для чего ему нужно решение.
Так что мы можем только ''сотрясать воздух''...  

Всего записей: 7832 | Зарегистр. 15-07-2003 | Отправлено: 13:44 09-03-2005
Stroodder



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dogmatek
Ну, самый первый шаг: поставить в свойствах диалогов VC++ русский язык, вместо аглицкого а уж потом в дебри лезть.

----------
Шерше ля варез...

Всего записей: 666 | Зарегистр. 21-10-2004 | Отправлено: 14:02 09-03-2005
distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Duke Shadow

Цитата:
Цитата:
setlocale/cout.imbue
 
А вот отсюда подробнее можно?

 
чтобы из юнокодовой программы правильно выводить русские буквы, нужно позаботится об установке соответствующей локали. Также важна кодировка исходных русскоязычных текстов (обычно это ANSI codepage, оно же cp1251)
 
а в консоль все сливается в OEM codepage (cp866)
 
для c++

Код:
 
#define UNICODE
#define _UNICODE
 
#include <iostream>
 
using namespace std;
 
int wmain()
{
    wcout.imbue(locale(".866"));
    wcout << L"Привет!" << endl;
 
    return(0);
}
 

 
для c

Код:
 
#define UNICODE
#define _UNICODE
 
#include <stdio.h>
#include <locale.h>
 
int wmain()
{
    setlocale(LC_ALL, "rus_rus.866");
    wprintf(L"Привет!\n");
 
    return (0);
}
 

 
Interceptr

Цитата:
захват данных из форм в с++

 
а я, пожалуй, буду сюда захаживать.. (c) "От заката до рассвета"
 
начитался что ли книжки по вышеприведенной ссылки? ))
 
если это - то, о чем я думаю, то вкраце:
в Visual C++ можно с контролом ассоциировать определенную переменную,
причем возможны 2 варианта - простой тип (BOOL для кнопки, CString для едита etc) и тип Control. В первом варианте при изменении состояния контрола, переменная будет обновлена новым значением (этот код добавит визард)
Во втором варианте переменная по сути является инстансом этого элемента управления, и через нее можно осуществить полный доступ к интерфейсу контрола самостоятельно.

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 15:14 09-03-2005
Interceptr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance
ни черта непонял...=)
можеш примерчик нацарапать? маленький=) если не сложно мне так проще въехать...

Всего записей: 16 | Зарегистр. 09-01-2005 | Отправлено: 20:05 09-03-2005 | Исправлено: Interceptr, 20:11 09-03-2005
Dogmatek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
только сейчас добрался до компа...
вобщем стоит у меня Borland C++Builder 6 пишу в кодировке ANSI(1251)
 
строки жестко "зашиты" в программу или приходят извне? в какой кодировке исходник? юзаются потоки или c runtime? console или gui?
- этого я не знаю
например пишу прогу:
 
# include <iostream.h>
 
const int dr = 100;
const int rr = 40;
#define T "Введите количество отработанных дней"
int vr , sverh;
main()
{
    puts (T);
     cin >>vr;
    cout<<"Оплата за норму ";
    cout<< (vr-rr)*dr << "$";
    cin.get();
    cin.get();
}
 
выводятся кряказяблы
 
отчасти я решил проблему,
если писать прогу в текстовом редакторе и сохранить в досовской кодировке тогда русские шрифты нормально отображаются

Всего записей: 44 | Зарегистр. 25-01-2005 | Отправлено: 20:38 09-03-2005
zorrack



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Interceptr
1. Пожалуйста, поподробнее опиши следующие моменты:
  а) Какая среда программирования?
  б) Если Visual C++ - то используется ли MFC
2. Если используешь Visual C++ - юзай Class Wizard (Ctrl+W по умолчанию) на диалоге, в котором нужно провести соответствие. В Class Wizard сможешь привязать новые переменные к контролам.  
NOTE: автоматически ничего присваиваться/переприсваиваться не будет.
Для того, чтобы в каком то методе получить доступ к самым последним данным, введенным пользователем необходимо использовать UpdateDate(...) функцию.
Для записи переменных в контролы: UpdateData(FALSE);
Для записи значений из контролов в переменные: UpdateData(TRUE) или просто UpdateData()
3. Если не пользуешь MFC - тогда немного гемморойно:
3.1. Описываешь переменные, в которые будут писаться значения из контролов
3.2. Пишешь функции:

Код:
 
//interface
void UpdateData(BOOL bSave  = TRUE);
//implementation
char* GetControlValue(int nControlID)
{
  char* pResult = NULL;
  HWND hWnd = ::GetDlgItem(hMainWnd  /*dialog wnd handle*/, nControlID);
  int iLen = ::GetWindowTextLength(hWnd);
  if (iLen > 0)
  {
    pResult = (char*)malloc(iLen + 1);
    ::GetWindowText(hWnd, pResult, iLen);
  }
  return pResult;
}
void UpdateData(BOOL bSave)
{
  if (!bSave)
  {
  //для каждой переменной - для примера IDC_edUserName
      char* pRes = GetControlValue(IDC_edUserName);
      if (pRes)
      {
        // скопировать результат pRes в переменную нужного типа с проверкой введенных данных, буфера и т.д.
      }
  }
  else
  {
    //для каждой переменной провести ::SetWindowText, предварительно сформировав буфер и т.д.
  }
}
 

В общем - ничего сложного нету, но много писанины

Всего записей: 244 | Зарегистр. 16-05-2003 | Отправлено: 20:56 09-03-2005
Dogmatek

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не плохой учебник можно взять здесь http://softec.narod.ru/soft/c.rar
сам по этой книге обучаюсь параллельно по Страустрапу

Всего записей: 44 | Зарегистр. 25-01-2005 | Отправлено: 00:56 11-03-2005
Duke Shadow



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance

Цитата:
а в консоль все сливается в OEM codepage (cp866)

Ну почему данные глюки лезут - я-то в курсе. Хотелось бы решение без лишних спотыкалок.

Цитата:
setlocale(LC_ALL, "rus_rus.866");  

А это точно под виндой работает? LC_ALL - это уже что-то из мира Юникс. Причём, правильнее будет, кажется, "ru_RU.866"?!

----------
Тот, кто умеет - делает, кто не умеет - учит(с)Б. Шоу
Войны никого не могут сделать великим(с)магистр Йода
Аватар(c)MindDiver

Всего записей: 3912 | Зарегистр. 15-02-2003 | Отправлено: 10:30 11-03-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обучение и начало програмирования на С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru