[ 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. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Тем, что ее впору использовать, если пишешь на чистом си в блокноте, чтобы не забыть, какая переменная имеет какой тип. Вообще, на эту тему много рассуждений, найти несложно.
     
  2. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    Создаю допустим 10 кнопок:
    Code:
    HWND HNewParent=Form1->Handle;
    HWND hButton = CreateWindow("BUTTON",
    ch, WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
    xxx, yyy, 29, 17, HNewParent, NULL,
    (HINSTANCE)GetWindowLong(HNewParent, GWL_HINSTANCE), NULL);
    Как мне потом к ним обратиться? Например мне нужно после создания менять цвет текста в каждой.
     
  3. Catbert

    Catbert Banned

    Joined:
    29 Jun 2010
    Messages:
    80
    Likes Received:
    27
    Reputations:
    10
    Во-первых, если ты пишешь в билдере, то непонятно зачем CreateWindow используешь. Там же VCL, соответственно можешь создавать кнопки упрощенно, например,
    Code:
    TSpeedButton * button[5];
    for(...)
    {
      button[i] = new TSpeedButton(Form1);
     ....
    }
    
    Во-вторых, у тебя же есть хендл созданной кнопки, так в чем проблема послать ей сообщение, чтобы изменить цвет?
     
  4. cupper

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

    Joined:
    6 Jun 2007
    Messages:
    369
    Likes Received:
    92
    Reputations:
    5
    бездумное использование поиска это уже синдром.
    То что ты привел это API на чистом СИ, зачем спрашивается смешивать С++ и С ?
    Я спрашивал во первых про коннекторы (с тем как их изать разобрался, проще было из сорцов собрать и заинсталить).
    Далее я отошел от темы коннекторов и хотел узнать может есть более лучший, не в плане того что его написал какойто там вася пупкин и он очень простой, а в архитектурном плане, который мб имеет негласное признание и т.д....
     
  5. AtomoS

    AtomoS New Member

    Joined:
    17 Feb 2010
    Messages:
    88
    Likes Received:
    1
    Reputations:
    0
    хотя может и странный вопрос, но как изменить файл hosts на си?
     
  6. Dr.Sergo

    Dr.Sergo New Member

    Joined:
    4 Jul 2007
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Как и обычный текстовый файл. Вы умеете с ними работать?
     
  7. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    просто использовал то что нашел в гугле :)
    Теперь такая вот проблемка: мне нужно отсортировать кнопки пузырьковым методом. Всё да ничего сложного нету, но вот это нужно сделать с задержкой что бы было видно как происходит сортировка. Sleep не устраивает так как он останавливает работу программы, Timer наверное лучше всего подошел бы но никак не могу придумать как его использовать в цикле что бы происходила задержка.
     
  8. Jest

    Jest New Member

    Joined:
    4 Oct 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Не могу получить текст между двух тегов HTML.
    Я получил страницу, записал в файл, считал из файла в переменную (в массив строк)... так вот:
    есть тег <td class="num">416</td>
    Как мне найти этот тег в массиве строк и получить число внутри тега?

    P.S. Пробовал strstr, но при нём почему-то происходит краш и я не могу понять почему. При использовании strtok - вообще какую-то фигню находит.
    P.S.S. Вот кусок кода поиска:
    Code:
    char *search="<td class=\"num\">416</td>"; 	
    cout << strstr(buf,search);
     
  9. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    187
    Reputations:
    5
    а если вывести просто
    cout << buf;
    Проблем нет?
    buf не переполнен?
     
  10. Jest

    Jest New Member

    Joined:
    4 Oct 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Нет, тогда всё нормально...
    Ещё вопрос: почему не работает код ниже? В этом коде я сканирую текст, хочу чтобы выводил по букве на экран до тех пор, пока не попадётся "<".
    Code:
    char *search="<h1>"; 	
    char *mbuf; //тут текст, большой 	
    mbuf=strstr(buf,search);
    for(int i=0;i<50;i++){
         if(mbuf[i]=="<"){break;}
    cout << mbuf[i]; 	
    }
     
    #5830 Jest, 27 Nov 2010
    Last edited: 27 Nov 2010
  11. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    187
    Reputations:
    5
    сделай так

    PHP:
    char *search="<h1>";     
    char *mbuf//тут текст, большой     
    mbuf=strstr(buf,search);
    if(!
    mbuf)
    ShowMessage("Error mbuf");
    mbuf +=strlen(search);

    for(
    int i=0;i<50;i++){
         if(
    mbuf[i]=="<"){break;}
    cout << mbuf[i];     
    }
     
    #5831 rudi, 27 Nov 2010
    Last edited: 27 Nov 2010
  12. Jest

    Jest New Member

    Joined:
    4 Oct 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Вот ошибки:
    Code:
    C:\Äëÿ Ñ++\newsreader1\newsreader1.cpp(52) : error C2065: 'ShowMessage' : undeclared identifier
    C:\Äëÿ Ñ++\newsreader1\newsreader1.cpp(56) : error C2446: '==' : no conversion from 'char *' to 'int'
            This conversion requires a reinterpret_cast, a C-style cast or function-style cast
    C:\Äëÿ Ñ++\newsreader1\newsreader1.cpp(56) : error C2040: '==' : 'int' differs in levels of indirection from 'char [2]'
    P.S. Постоянно пишет что не может конвертировать из char* в char или из char[500] в *char - как с этим бороться?
     
  13. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Хватит мешать си и си++ и писать упоротые коды...

    PHP:
    #include <string>
    #include <iostream>
    #include <stdlib.h>

    void main()
    {
            
    //длинный хтмл код, выцепим из него номер
        
    std::string text("<html><head><title>lol</title></head>\
                         <body><table><td class=\"num\">416</td></table>\
                         </body></html>"
    );

        
    std::string to_find("<td class=\"num\">");

        
    std::string::size_type pos;

        if((
    pos text.find(to_find)) != std::string::npos)
            
    std::cout << std::atoi(text.c_str() + pos to_find.length()) << std::endl;
        else
            
    std::cout << "Not found" << std::endl;
    }
     
    #5833 GRRRL Power, 27 Nov 2010
    Last edited: 27 Nov 2010
  14. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    187
    Reputations:
    5
    чувак мы не полтергейты
    чтобы это понять
    нам нужен кусок кода
     
  15. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    5 баллов вообще... Он твой кусок кода парой постов выше и исполняет :)
    А ошибки очевидны, ты его даже не проверил.
     
  16. Jest

    Jest New Member

    Joined:
    4 Oct 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Возможно... сейчас пробую пример GRRRL Power
    Как пользоваться этими std:: ?

    P.S. Я не знаю какой инклюд для ShowMessage нужен!
     
  17. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Советую для начала изучить азы C++, если уж на нем взялся делать что-то... std - это namespace стандартной библиотеки C++. И ты его, кстати, уже используешь, когда пишешь нечто вроде
    PHP:
    using namespace std;
    ...
    cout << ...
     
  18. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    492
    Likes Received:
    187
    Reputations:
    5
    видать я сегодня много выпил :)

    вместо ShowMessage("");
    можешь написать cout <<
     
  19. Jest

    Jest New Member

    Joined:
    4 Oct 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Это я понял, а где можно почитать про функции библиотеки?
     
  20. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Она содержит в себе классы и функции.
    http://www.cplusplus.com/reference/
     
Thread Status:
Not open for further replies.