[ 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. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    даж не знаю что ты этим хотел сказать....
    имхо printf более функциональная весчь, хотя это кто как привык..

    неболшой тестик на скорость
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <iostream.h>
    
    #define  ZIKL        1000000
    
    int main()
    {
        int ts = time(NULL);
        int i;
    
        for(i = 0; i < ZIKL; i++)
                 printf("hello");
    
       int tp =  time(NULL);
       for(i = 0; i < ZIKL; i++)
             std::cout<<"hello";
    
        printf("\n\nprintf - %d\ncout - %d\n", tp - ts, time(NULL) - tp);
        return system("pause");
    }
    
    как видно printf работает быстрее, да и с ее помощбю оч удобно форматировать строки!
    http://ru.wikipedia.org/wiki/Printf
     
    #1221 nc.STRIEM, 17 Jun 2008
    Last edited: 17 Jun 2008
    1 person likes this.
  2. _empty

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

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Мда... Жаркие дебаты , прям бой какой то iostream vs stdio =)

    Победитель - printf! Поздравляем поклонников функции!

    ZIKL 100000

    time cout 9
    time printf 3
     
    #1222 _empty, 17 Jun 2008
    Last edited: 17 Jun 2008
    1 person likes this.
  3. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Тестик на скорость, зачем тогда писать на c++ этот код? Может тогда ради скорость на asm'e ? Потоковый вывод гораздо более удобен и функционален %)
    а скуяле ты судья?
     
    #1223 Fata1ex, 17 Jun 2008
    Last edited: 17 Jun 2008
  4. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    вы не логичны.... на асме приходится гораздо больше писать для той же ситуации... а мы говорим что printf - лаконичнее , быстрее и матрица не сьела ваш моск внушив что есть чтото с названием поток!


    .... давайте я напишу класс назову его тиранозавр.... а все кто будут пользоваться с важность будут говорить о тирррексах.... и быть важными что они абстрагировались до уровня тиранозавров 8)))))))))))))
     
    #1224 Delimiter, 17 Jun 2008
    Last edited: 17 Jun 2008
    2 people like this.
  5. _empty

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

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Я тест провел, победил printf , но никто ж не говорит что cout это плохо. Я ж говорю, кому что нравиться, через классы *stream зато удобней с файлами работать :)
     
  6. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    И да - C++ оо язык, поэтому логичнее использовать для ввода-вывода на языке c++ именно классы-шаблоны ( А не сишные функции :(
     
    #1226 Fata1ex, 17 Jun 2008
    Last edited: 17 Jun 2008
  7. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Омг, что значит не уложились? Если я указываю прототип и пример это не значит, что в коде это будет две строчке.
     
  8. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    printf быстрее если выводишь маленький объем данных. а соut если большой насколько я помню.
    имхо юзать сишные ф-ции в с++ бред. пишите либо на си либо на си++.


    подредактируй пожалуйста свой пост и измени дешевые сишные функции на сишные функции
     
  9. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    я программю на С++ ! И я даже не понимаю о чем вы тут говорите.... С++ вобрало в себя весь Си(в стандарте Ansi) и пользоваться им не просто можно а нужно! Это не 2 языка... С++ это ступень развития Си
     
  10. _empty

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

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Все, щас иду на экзамен по языкам программирования и гружу препода - кто же круче. А то тут стало жарко прям! Ну еще раз, кому нравиться iostream - юзайте, кому нравиться printf - юзайте, все равно все при своих мнениях останемся!
     
  11. Forcer

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

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    Страуструп вот только так не считает.

    nc.STRIEM
    этот тест очень субъективен.

    выигрыш в скорости совсем небольшой. Мне кажется, это не то, на что нужно обращать внимание при разработке ПО. Оптимизация нужнаы лишь там, где она действительно нужна, и это далеко не тот случай.
     
    2 people like this.
  12. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    модеры создайте новую тему printf() vs iostream, и перенесите туда посты, пообсуждаем, тут просто флудить не охота.

    в какойто степени iostream удобнее, НО некоторые весчи которые с легкостью реализуються через printf(), iostream не способна реализовать. теже форматирования строк..
    а ваше это кто как привык..
     
    1 person likes this.
  13. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Какие же вещи, которые можно реализовать с помощью printf, нульзя реализовать с помощью iostream? В том-то и дело что iostream обладает всеми возможностями printf + имеются собственные, которые в printf невозможны.
     
  14. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    Между Страупом и Рихтером такая же разница! Один учит абстрагироваться другой управлять компом! В одном случае имеем программера который не знает что строка должна завершаться нулем зато быстро взращивает ботву, а в другом программера который и с ексепшинами воюет так как ему нравится!
     
  15. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    Ты тру чувак :D :D

    ЗЫ Спасибо, поржал :cool:
     
    2 people like this.
  16. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Code:
    #include <iostream>
    using namespace std;
    
    #define size 10;
    int main()
    {
    	for(int i=0; i < size; i++)
    	{
    		cout<<"Test\n";
    	}
    	system("PAUSE");
    	return 0;
    }
    Почему комплится не хоче? если в цикле место size подставить 10 то всё норм... но я ведь обьявил что size это 10... делаю по книжке там такоей пример комплится норм... хотя у них BORLANDc++ а у меня visual studio c++

    компилятор пишет

    Code:
    1>.\file.cpp(7) : error C2146: syntax error : missing ')' before identifier 'i'
    1>.\file.cpp(7) : error C2059: syntax error : ';'
    1>.\file.cpp(7) : error C2059: syntax error : ')'
    1>.\file.cpp(8) : error C2143: syntax error : missing ';' before '{'
     
  17. Forcer

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

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    точка с запятой лишняя
     
  18. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Forcer Ой точно))) чтото я уже совсем... автоматом эти точки с запятой ставлю
     
  19. SVAROG

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

    Joined:
    13 Feb 2007
    Messages:
    424
    Likes Received:
    86
    Reputations:
    -1
    подскажите плз в чём прикол последняя строка ч ошибкой вылетает, компилирую vc++ 6;
    #include "stdafx.h"
    #include "winsock.h"
    #include <string.h>
    #include "winbase.h"
    #include <stdlib.h>
    #include <iostream.h>
    #pragma comment(lib,"ws2_32")
    int main(int argc, char* argv[])
    {
    char *file="C://host.txt";
    HANDLE filhend;
    DWORD dw;
    int i,j;
    char *buff, *stroka;
    filhend=CreateFile(file,GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
    DWORD razm=GetFileSize(filhend, NULL);
    buff = (char *)malloc(razm+1);
    stroka = (char *)malloc(razm+1);
    for(i=0;i<=razm;i++) {stroka='\0'; buff='\0';}
    //DWORD razm=GetFileSize(filhend, NULL);
    //cout << razm;
    ReadFile(filhend, buff, razm/*127*/, &dw, 0 );
    CloseHandle(filhend);
    MessageBox(0,buff,"123",MB_OK);
    i=0; j=0;

    while(j<=razm){

    while((buff[j]!=0x0D) || (j>=razm))
    {
    stroka=buff[j];
    j++; i++;
    }
    MessageBox(0,stroka,"123",MB_OK);
    //for(int k=0;k<=j;k++) stroka[k]='\0';
    j=j+2; i=0;
    //if (buff='!') {break;}
    }


    //CloseHandle(filhend);

    return 0;
    }
    =================
    разобрался
     
    #1239 SVAROG, 26 Jun 2008
    Last edited: 27 Jun 2008
  20. SVAROG

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

    Joined:
    13 Feb 2007
    Messages:
    424
    Likes Received:
    86
    Reputations:
    -1
Thread Status:
Not open for further replies.