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

    Retimiled Banned

    Joined:
    23 Dec 2009
    Messages:
    110
    Likes Received:
    17
    Reputations:
    0
    2 Ins3t
    Чувак вопрос был как это правильно сделать!
     
  2. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Например так:

     
  3. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Code:
    #include <iostream>
    #include <string>
    #include <sstream>
    using namespace std;
    
    string my_func(int x){
    	stringstream strNumber;
    	strNumber << x;
    	return strNumber.str();
    }
    int main(){
    	cout << my_func(5);
    }
    И старайтесь не юзать char* там, где ему не место =)
     
    1 person likes this.
  4. Retimiled

    Retimiled Banned

    Joined:
    23 Dec 2009
    Messages:
    110
    Likes Received:
    17
    Reputations:
    0
    2 ra$cal

    сделай цикл из 4000000 вызовов твоей фукнции и функции
    void function(int i, char * result)
    {
    itoa(i,result,10);
    }

    ... и ты все поймешь! :D только поставь отсчет времени на начало и конец цикла!


    хотя присмотритесь к функции которая выполняет одну единственную функцию по сути нужно вызывать вместо этой функции функцию itoa, поскольку мы не добавляем ни функциональности а только ограничиваем в выборе базы!


    2 HTL
    Как в C++Builder 6 объявить функцию?
    В Delphi это делается так:
    function Name(i: Integer): string;
    begin
    Result :=IntToStr(i);
    end;

    а в Си это делается
    itoa(i,Result,10);

    :D :D :p
     
    #4564 Retimiled, 5 Jan 2010
    Last edited: 5 Jan 2010
  5. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    очередное горе, желающее, чтобы программа выполнялась за 0.00001с а не за 0.00005с. Мне лень вразумлять о преждевременной оптимизации, о том, что пишется код не для компьютера, а для программиста, и о прочих деталях пром кодинга, а не коленочного под пиво. Читайте книжки, или кодьте на асме. С++ сделали не для переписывания на нем си программ. Когда поймете, почему делают новые языки, такие как C++, Java, C#, тогда велкам.
     
  6. anasta

    anasta New Member

    Joined:
    11 Jun 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Подскажите плиз....
    Как будет выглядит код на Си, который способен просмотреть содержимое папки?
     
  7. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Подскажите учебник на подобии "Библия delphi (Михаил Фленов)" но для C++ (кто читал/просматривал учебник "Библия delphi" тот подскажет я так думаю)
     
  8. KI11obyte

    KI11obyte New Member

    Joined:
    8 Nov 2005
    Messages:
    29
    Likes Received:
    2
    Reputations:
    0
    Лучше Страуструпа для первой книги по С++ нет
    ее негласно как раз и называют библия С++
     
  9. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Позволю себе не согласиться.
    KI11obyte, неужели первая, книга которую ты прочитал, была Библия? Думаю, нет. Здесь то же самое. Лучше начать с Либерти. А потом уже закреплять Страуструпом. Фленова не читал, так что не знаю, на что похожа его книга, но в качестве первой Страуструп, по-моему, не очень подходит.

    Такое мясо из языков ( Разберитесь уж на чем пишите :)
     
    #4569 Fata1ex, 5 Jan 2010
    Last edited: 5 Jan 2010
  10. _antony

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

    Joined:
    16 Jul 2008
    Messages:
    80
    Likes Received:
    43
    Reputations:
    0
    А Вы на этом уровне?)))
     
  11. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    вы хоть раз писали софт, по размеру от 5-7 тыщ строк? если нет, то я вам подскажу одну вещь - юзеру будет совсем не наплевать на то, как писал программист, зато ему будет наплевать на скорость выполнения функции(поверьте, им и щас наплевать, тратится на функцию 0.0001с или 0.1с). Когда он пришлет вам багрепорт с критической багой, которую нада устранить в кратчайшие сроки, которая может потребовать небольшого перепроектирования какойнить подсистемы - вот тогда вы будете ковыряца в куче char*'чек, матерясь, следя, по какой цепочке вызовов проходят указатели для экономии(о да) 500 байт памяти. Все это уже давно пройдено, и именно это повлияло на создание таких языков, как C++, Java итп.

    Советую почитать Фаулера, Макконнелла, Гамму с компанией.
    Про скорость выполнения - готов в свободное время на спор написать программку - я и вы. Вы пишите с оптимизацией на скорость, я пишу как обычно. Программы будут идентичны. Даем юзерам и потом спрашиваем - какая написана оптимизированно под скорость, а какая моя. И я могу предсказать ответ пользователей =) И моя будет написана быстрее, а при необходимости добавить новую фичу - добавлена она будет так же быстрее. А для бизнеса это означает, что мой софт займет долю рынка раньше и получит больше клиентов -> больше денег.

    PS: сейчас время программиста стоит гораздо дороже времени машины, поэтому и балансируют скоростью разработки и скоростью выполнения. Если совсем все плохо - делают точечную оптимизацию. Кароч спорить бестолку. Читайте книги. Я уже устал от таких рассказов. За вчера меня трое пыталось убедить, что классы - зло. Сезонное чтоли=\

    PPS: char* - для языка С, в C++ юзать нада класс string. Это стоит учитывать, когда человек просит помочь с конкретным языком.
     
    #4571 Ra$cal, 5 Jan 2010
    Last edited: 5 Jan 2010
    1 person likes this.
  12. Retimiled

    Retimiled Banned

    Joined:
    23 Dec 2009
    Messages:
    110
    Likes Received:
    17
    Reputations:
    0
    экккк .... вас :D

    спорьте с фразой не отвлекаясь на частности
    ЗАМЕНЯТЬ itoa РЕАЛИЗАЦИЕЙ НА КЛАССАХ -ГЛУПО если вы не увеличиваете функциональность или скорость !

    CString str; // мы тащимся от классов 8)
    ....
    itoa(xx,buf,yy); // тут колбасит ОСОБЫХ людей с голубой кровью КОТОРЫЕ УДАЛИЛИ ИЗ СВОИХ MSDN к MSVC
    ... ................ //все описания команд типа itoa!!
    str=CString(buf); // тут опять тащимся 8-Ь

    P.S. Если вы отбросите указатели в С++ то чего вы вообще делаете на форуме посвященном безопасности? Каким образом вы будете работать с областями памяти заданные адресами, каким образом будете писать эксплоиты? Коммерческое программирование конечно хорошо.... но при чем тут античат? Почитайте Рихтера "Проффессиональное программирование в Windows" и поразитесь насколько редко используется С++ в его высокоуровневой компоненте, не сбивайте школьников обьясняя им что С++ , только высокоуровневый , если сами не понимаете всей полноты языка лучше помолчите!
     
    #4572 Retimiled, 5 Jan 2010
    Last edited: 7 Jan 2010
  13. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    1 - itoa требует работы в стиле си, т.к. класс string не дает доступа к своему буферу на запись. поэтому itoa в c++ весьма неразумно. для этого дела специально созданы потоки.
    2 - если это не узкое место программы - значит проблем нет. прекратите думать за компилятор, предсказывать узкие места по производительности. занимайтесь лучше программированием предметной области. если же это есть место проблемы - тогда да. берем и оптимизируем, убираем потенциальные выделения памяти, лишние операции. все заменяем на простейшие операции. но только после подтверждения факта проблемы. а вы боритесь с проблемой, которую сами придумываете.

    удачи. далее спорить влом.

    кароч, если пишешь на си - пиши. тока не лезь в с++, а то выглядишь очень глупо.
     
  14. koder.

    koder. New Member

    Joined:
    4 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Приветствую всех, нуждаюсь в помаши.
    Значит учусь по учембнику Джона либерти. Компилятор новый от майкрософт. Среда програмирования С++
    В чем суть.
    есть исходный тексь программы.
    Вылезает ошибка:
    Также ещё один исходник:
    Вроде все верно, но при компиляции выдаеться таже ошибка. =(
    Просьба подсказать, что за заголов отсутствует, и куда надо его вписывать.
    За все ответы огромное спосибо. ;)
     
    #4574 koder., 6 Jan 2010
    Last edited: 6 Jan 2010
  15. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,376
    Likes Received:
    1,094
    Reputations:
    356
    #include "stdafx.h"
    #include <iostream>
    using namespace std;

    int main() {
    cout << "tra-lya-lya!" << endl;
    cout << "tra-lya-lya!" << endl;
    return 0;
    }
     
    _________________________
  16. koder.

    koder. New Member

    Joined:
    4 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    спс большое все получилось... книжка устарела видимо. :) :) :)
     
    #4576 koder., 6 Jan 2010
    Last edited: 6 Jan 2010
  17. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    ничего не устарело. читай просто внимательнее, когда ставится ; а когда нет.
     
  18. koder.

    koder. New Member

    Joined:
    4 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Я впринципе все делал правильно, у меня лиш вылезала ошибка
    И модератор подсказал using namespace std; =) (чего в книге нету нигде)
    Поэтому ; и : тут не причем =)
     
  19. Ra$cal

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

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

    Code:
    #include <iostream>
    
    
    int main() 
    ;{
    cout << "Hello World!\n" ;
    return 0;
    ;}
    В данном случае неуместные ; очень даже причем. И компилятор ругается на них. -
     
  20. koder.

    koder. New Member

    Joined:
    4 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Это я знаю. Понатыкал ; перед { u }, т.к компилятор указывал на ошибки, я в поисках правильного решения проверял все варианты, сюда отписался тоже одним из своих вариантов... =) . Потом исправил мои ошибки, отредактировал =)
    Порой в книгах, которые работают с djvureader очень тяжко разгледеть стоит внизу запятая или точка. С этим я думаю ты согласишся =) Как не приближай. :)
     
    #4580 koder., 6 Jan 2010
    Last edited: 6 Jan 2010
Thread Status:
Not open for further replies.