[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. maked0n

    maked0n New Member

    Joined:
    14 Sep 2010
    Messages:
    144
    Likes Received:
    3
    Reputations:
    0
    Подскажите пожалуйста хорошую книгу на русском по написанию игр под DirectX на C++
     
  2. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    угу а генерировать тонны говнокода из шаблона списка для каждого нового списка отличающегося только типом данных это тру ??? будет у тебя в памяти 10 совершенно одинаковых реализаций связного списка отличающегося только типом обрабатываемых данных вместо одной копии это тру да.... ? не думал почему я ядре линуха/винды из говношаблонов не генерят adt ? представь сколько там в adt разной хрени хранится теперь представьте на каждую хрень отличающуюся только типом данных свой код отбработки представьте насколькоо больше кода будет генерится да и вообще интересно чем это доставать не удобно простой макрос которому передается тип а возвращается lvalue из вот и все типонебезопасно да но чтоб прямо неудобно это слишком всю жизнь программисты на С писали обобщенные алгоритмы с помощью указателей void* и никто не ныл что неудобно но адепты с++ видители кричат что это уже не тру а Вы батенька писали на чем то кроме С++ чтоб так кричать ???
    я непротив с++ даже наоборот мне многое нравится в этом языке по сравнению с С но осмотрелся бы так кричать что что то там не тру на вас как минимум косо посмотрели все те кто адептом с++ не является и пишет свои обобщенные алгоритмы через нетипизированные указатели
    2Irdis а вообще это все такая хренота не относитесь к моим словам серьезно просто у меня настроение не очень и вы попались под руку прошу прощения если чем то обидел...
     
    #5662 greki_hoy, 26 Sep 2010
    Last edited: 26 Sep 2010
  3. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    Пишу маленькое консольное приложение.
    Хочу создать меню команд. В моем случае реализация такая
    //Подобие моего кода
    int chose;
    cout << "Enter number of command: \n";
    cin >> chose;

    switch(chose)
    {
    case 1: blabla()
    break...

    И так далее. Как сделать, что бы пользователь мог ввести например команду "quit", а моя программа поняла его.
    switch ведь не понимает типы данных string и char

    Я так полагаю, что мне нужно реализовать кусочек кода, где проверялось бы значение строки, и переменной присваивалось численное значение. А потом уже свич.
    Только как сделать не знаю. Подскажите, натолкните на мысль. Спасибо.
     
  4. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    всё уже реализованно в самом языке. используй enum.
     
  5. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Вы не правы :) ... вот используете вы библиотеку и вам возвращают такой список. Спрашивается, что вы с ним делать будете? к чему приводить? Кто гарантирует то, что первым элементом int а вторым не Абракадабра. Или вообще, что вам вернули?

    На насчёт тонн говнокода. Это правда, что для всего генерируется свой класс. Но он не от балды генерируются, а по требованию. Если вы не используете List<int>, то он не генерируется. И вообще. Вы поговорите с разработчиками boost. Они вам и расскажут почему у них всё на шаблонах основано. Или они тоже говнокодеры?
    а вы наверно и в java(или с#) пишите
    class Node
    {
    Object val;
    Object next;//мы же тру, у нас всё не типизированно
    }
    Ну и что с такой красотой делать??? (хоть и пример плохой(в смысле generic не шаблоны) но он отражает ваш ход мысли)
     
    #5665 Irdis, 27 Sep 2010
    Last edited: 27 Sep 2010
  6. Scripter

    Scripter Member

    Joined:
    3 Sep 2008
    Messages:
    141
    Likes Received:
    95
    Reputations:
    6
    никакую, тем более русскую. Читай DirectX SDK, иначе потом поймешь, что зря потратил время.
     
  7. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    что неправильно в этом объявлении
    Code:
    static char *ptempmas[] = {
    			{6, 7, 6},
    			{9, 10, 11}
    };
    
     
  8. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    мб ход моих мыслей тебе явно даст понять что ДА Я НЕЗНАЮ ГДЕ Я ОШИБАЮСЬ

    Я отталкивался от этого определения
    Code:
    STATIC CHAR *NAME[] = {
        "ILLEGAL MONTH",
        "JANUARY",
        "FEBRUARY",
    }
    
    массив указателей на char. строка вида "aaa" есть ничто иное как {'a','a','a','\0'}, в свою очередь каждый символ из этого массива есть ни что иное как однобайтовое число которой можно привести к int.
    Ну вот я и решил а что б собсно не сделать так как сделал я. И тут я видимо все перепутал. Выше приведенный массив я понимаю как двумерный с переменным числом элементов в каждой строке, как раз благодаря указателям. С числами видимо такое не канает. И нет иного способа как явно определять сначало
    Code:
    int *mas = new *int[x];
    
    а потом пробегать каждый элемент и делать
    Code:
    mas[i] = new int[y];
    
    Но это же равносильно тому чтобы сделать
    Code:
    int *mas[x];
    for(int i=0; i<x; i++)
    {
          int TempMas[i];
          mas[i] = TempMas
    }
    
    Тобишь я хотел статически определить двумерный массив с переменным числом элементов в каждой строке. Но да я както пропустил тот момент что к первому массиву обращаться можно только так NAME получаем всю строку (адрес первого элемента строки которой храниться в NAME).
    Ей богу не понимаю где я ошибаюсь :( Основательно запутался я.
     
  9. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    перед switch'ем
    Code:
    if(chose == "quit")
      break;//я так понимаю меню выводится в цикле
    
     
  10. Scripter

    Scripter Member

    Joined:
    3 Sep 2008
    Messages:
    141
    Likes Received:
    95
    Reputations:
    6
    С чего ты взял, что он двумерный?
    Вот пример двумерного:
    int mass[N][M];

    Ты конечно извини, но дальше я даже вникать в твои слова не стал, ибо такая чушь.
     
  11. revenantus

    revenantus New Member

    Joined:
    27 Sep 2010
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Code:
    int _tmain(int argc, _TCHAR* argv[])
    {
    	return 0;
    }
    народ наверное банальный вопрос =/.с билдера пересел на вижлу(2010).не могу понять почему main имеет название _tmain да ещё и с атрибутами.с простой заменой на int main(){}; конечно работает но все же хотелось бы узнать досконально все.и ещё вопросик нубский:
    объявления класса где нужно писать?в функции или можно просто после объявления библиотек?в книжке по которой это учу об этом ничего не сказано
     
  12. KaE

    KaE New Member

    Joined:
    27 Sep 2009
    Messages:
    44
    Likes Received:
    1
    Reputations:
    5
    Скорее всего при сбоке проекта линкеру указывается именно этот Entry Point в программу, так что ничего страшного.
     
  13. LBC

    LBC Banned

    Joined:
    10 Sep 2010
    Messages:
    49
    Likes Received:
    3
    Reputations:
    5
    Как в Turbo C определить ширину экрана, но не в точках, а в символах. Грубо говоря, как узнать максимальную длину строки, которая может поместиться на экране без переноса.
     
  14. Gin

    Gin Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Возник маленький вопрос, выполняю пост запрос для авторизации, как получить ссылку на которую идет редирект в libcurl
     
  15. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    неправильно использовал терминологию, согласен звучит бредово. Основной вопрос все еще в силе.
     
    #5675 cupper, 29 Sep 2010
    Last edited: 29 Sep 2010
  16. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    А если делать проект типа winAPI то она еще както по другому называться будет, главное что среда всегда знает как она называется и всегда с нее начинить будет.
    Code:
    int _tmain(int argc, _TCHAR* argv[])
    
    с помощью этих параметров можно передать в функцию _tmain (main) значение из внешней среды при вызове программы
    argc это колличество переданных параметров
    argv это сами параметры в виде массива указателей на строки
    (_TCHAR это через третье колено дефайленый char)
    стандартно первый параметр в argv это имя вызываемой программы поэтому argc как минимум всегда равен 1.
    Для того чтобы получить все переданные параметры можно воспользоваться записью
    Code:
    while(--i>0)
       cout<<argv[i];
    
    Я могу немного путь с типами, так как давно в VS не работал да и вообще все их эти милиарды типов не знаю. Вот почитай, тут как раз это обсуждается
    сюда
     
    #5676 cupper, 29 Sep 2010
    Last edited: 29 Sep 2010
  17. cupper

    cupper Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    отлично ты в int положил string ?) ай да волшебник.
    Выход только один, читай все как
    Code:
    string chose;
    cout << "Enter number of command: \n";
    cin >> chose;
    if (chose == "quit")
      return 0;
    switch(atoi(chose.c_str()))
    {
    case 1: blabla()
    break...
    
    atoi
     
  18. maked0n

    maked0n New Member

    Joined:
    14 Sep 2010
    Messages:
    144
    Likes Received:
    3
    Reputations:
    0
    у кого есть ссылка на данные книги:
    Ален Торн Direct X9. Осваиваем 3D-пространство
    либо
    Ален Торн Графика в формате DirectX 9. Полное руководство по использованию 3D-пространства
     
  19. Bit

    Bit New Member

    Joined:
    22 Jun 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Дайте совет плиз. Изучил синтаксис с++ и немного win api . Хочу поучиться писать программы под интернет(парсеры, проги для автоматизации работы с сайтами, другие клиентские приложения). Незнаю с чего начать вообще(( Слышал про такие вещи как сокеты, Curl, WinInet, http и в голове полная каша. Искал в гугле инфу-ничего систематизированного, лишь отдельные куски кода по которым ничего не понятно. Подскажите что для таких целей мне поучить и если несложно тыкните носом где информацию более менее полную найти, заранее спасибо.
     
  20. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Пример работы с TCP протокол на winsock:
    https://forum.antichat.net/showpost.php?p=373579&postcount=6
    (все идеально работает там, главное подменить тот ip (куда будет все отправляться) на текущий ip античата)

    Литература:
    рекомендую М. Фленов "Delphi в шутку и в серьез", там хорошо рассмотрен winsock
     
Thread Status:
Not open for further replies.