[ 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. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    В продолжении, а как вывести в консольном приложении объект string
    cout<< и printf не получается. Может есть стандартные функции?

    Сразу чтоб не постить много.

    С помощью какой функции можно найти подстроку в объекте string :?

    Заранее спасибо.
     
  2. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    string str;
    cout<< str.c_str();
     
    1 person likes this.
  3. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2Gin

    PHP:

    //Резервируем и выделяем побайтно память
            
    buffer = (char *)VirtualAlloc(NULL1000MEM_RESERVEPAGE_READWRITE);
            
    buffer = (char *)VirtualAlloc(buffer1MEM_COMMITPAGE_READWRITE);        

            
    //Читаем из сокета побайтно, чтобы быть уверенными, что вся инфа дошла
            
    while(recv(sRemoteSock, &buffer[i], 10))
            {
                
    //Если встретили перевод строки, то ппц конец передачи
                
    if(buffer[i] == '\n')
                {
                    
    buffer[i] = '\0';
                    
    printf("[>] Client say : %s\n"buffer);
                    
                    
    VirtualFree(bufferMEM_RELEASE);
                    
    0;
                    break;             
                }
                else
                {
                    
    //Выделяем ещё один байт
                    
    buffer = (char *)VirtualAlloc(buffer i++ + 11MEM_COMMITPAGE_READWRITE);
                }
            }

    Как то так ) Тут концом сообщения считается перевод строки (можно переделать). Можно в принципе поблочно считывать, а не побайтно.
     
  4. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    какой нах VirtualAlloc o_O на худой конец malloc, или new для c++.
     
    1 person likes this.
  5. n4e/\@

    n4e/\@ Elder - Старейшина

    Joined:
    6 May 2008
    Messages:
    138
    Likes Received:
    17
    Reputations:
    0
    Че то как то сложно, ведь в string'e есть метод find. И к тому же есть функция strtok, которая разбивает строку на лексемы(при первом вызове задается по какому символу разделяем, в последующих вызовах передаем NULL)
    И кстати у меня std::cout << переменная_стринг выводится без проблем, т.е. не надо преобразовывать в char по средствам c_str().
    Но я всегда подключал <string>
     
    1 person likes this.
  6. *uNkN0Wn*

    *uNkN0Wn* Member

    Joined:
    25 Mar 2009
    Messages:
    175
    Likes Received:
    92
    Reputations:
    11
    Скажите пожалуйста как найти серийник к Codegear 2007 никак не найду.
     
  7. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2Ra$cal

    а есть какойнибудь цинус использовать вместо API CRT-функции? Мне так например проще ) хотя да при работе с ANSI строками я буду использовать CRT, да и то не всегда. Так что мне не совсем понятно ваше негодование по этому поводу )

    ЗЫ
    Да и давайте не будем тут о кросплатформенности ^_____^
     
    #3687 Hiro Protagonist, 9 Sep 2009
    Last edited: 10 Sep 2009
  8. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Огромное спасибо, ваша помощь просто не оценима !
    (не сочтите за флуд)
     
  9. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Hiro Protagonist
    ну давай еще в питоне будем VirtualAlloc юзать. Самый простой пример - выделяя память через апи ты получишь выравнивание страницы до 4096 байт, таким образом в случае аллока мелких блоков ты просто засрешь оперативу. Это раз. Во вторых - утечки памяти таким образом не отследить - это два. Заменить вызов VirtualAlloc на HeapAlloc было бы гораздо логичнее и правильнее, но это так же приведет к гемору - контроль размера кучи, невозможность отслеживания утечек памяти.

    Если тебе эти проблемы до сих пор не известны - то сочувствую. Они есть, просто ты о них не знал =)

    И еще - никогда не смешивают разные стили и технологии. Если юзают qt - юзают его классы. Если boost - то его. Например filesystem и классы работы с файлами qt не перемешивают в адеквате. Это банально упрощает читабельность кода.
     
    #3689 Ra$cal, 10 Sep 2009
    Last edited: 10 Sep 2009
  10. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2Ra$cal

    Мы говорим о Питоне? Код на Си (прошу заметить именно на Си), значит мы и говорим про Си.

    О да, о да. Как будто используя другие функции мы этого не получим. Память всегда выделяется по странично. Библиотечные функции работают лишь по выделенному региону(ам) на куче, эмулируя выделение памяти. А кучи (Heap* функции) надо сказать довольно глючный инструмент ), который не рчень то и рекомендуется использовать. В конечном итоге все использует VirtualAlloc )

    И да ты прав, у меня не такие большие проекты, чтобы использовать автоматизированный контроль утечек памяти - достаточно внимательности ) . Ну так и инструменты выбирают под задачу, а не наоборот.

    Хотя надо признать в вышеприведенном куске смысла коммитить каждый байт нету ^______^ да, говнокод ) но пытаюсь исправится ).
     
  11. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Именно поэтому я и рекомендую использовать Си-стайл. А именно malloc и free. Правда логично? =)

    Так вот именно поэтому они и работают так, эмулируя кучу - чтобы использовать память эффективно. В твоем же случае гарантированно память будет неиспользована. В случае с crt - память будет исплоьзована. Еще одна засада - дефолтная куча создается при создании процесса =) Так что ты ее просто динамишь, соотв так же просираешь =)

    Именно поэтому и следует не писать велосипед на костылях, а юзать malloc =)

    И? Не вижу тут оправдания неумелого использования языка =)
     
  12. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    сорри, не туда
    дел
     
    #3692 Дикс, 10 Sep 2009
    Last edited: 10 Sep 2009
  13. POS_troi

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

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Code:
    sudo passwd root
    Пробывал?

    только не пойму - С++ тут каким боком =))
     
  14. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Хочу написать чекер, но на странице много яваскриптов, возник вопрос для корректной работы с яваскриптами достаточно отправлять корректные HTTP заголовки или нужны еще какие либо надстройки для правильной работы.

    Извините за сумбурное изложение, но надеюсь меня поймете.
    Если не тяжело покажите в какую сторону копать, по части программирование на С++ для сети (в частности для веба).
    Спасибо.
     
  15. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    смотри, не отправляет ли заголовков сам яваскрипт
    + он может изменять на лету скрытые поля - это надо отслеживать, иначе сервер данные формы не примет
    в остальном яваскрипт роли не играет, насколько мне известно
     
    1 person likes this.
  16. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    2Диск and 2All
    Если я отслежу последовательность своих действий HTTPAnalyzer'ом к примеру ну и просто сохраню все отсланные моим браузером заголовки (разумеется поменяю то что нужно мне) так оно будет работать или все же тут есть свои ньансы?
     
  17. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Возник еще вопрос
    Вообщем нужно создать много файлов определенного содержания вида
    file1.txt
    file2.txt
    проблема в том что не могу привести тип int to string

    Code:
    std::string name;
    int i;
    name.append("file");
    		name.append((char)i);
    		name.append(".txt");
    
    Отказывается работать вообще, как только не пытался уже подскажите плз что делать.
     
  18. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    юзай itoa.
     
  19. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Пробовал всеравно ругается
     
  20. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    и как же ты пробовал? o_O

    string str = "";
    char tmp [20];
    itoa(10, tmp, 10);
    str.append(string(tmp));
    cout << str.c_str();
     
Thread Status:
Not open for further replies.