singlepost

Чем отличается cin и cout от printf и scanf? << На главную или назад  

70 ответов в теме “Чем отличается cin и cout от printf и scanf?”

  1. 25
    Александр Чигринец ответил:

    Джаву тоже используют. Но, угадайте, на чём написана сама виртуальная машина Джавы? Кроме того, прошивка сотовых телефонов на джава – большая редкость. Так что основной язык С или С++.

  2. 24
    Ден Савченко ответил:

    А на мобильных устройствах, насколько я знаю, используют жабу. Или это не так?

  3. 23
    Александр Чигринец ответил:

    Углурк РАБОТАЮ Савченко, вычислительные мощности мобильных устройств совсем не так велики пока.

  4. 22
    Ден Савченко ответил:

    2 Дмитрий Scandalous Щёголев
    >Между прочим насчет гибкости и скорости…
    Скорость – да. Но не гибкость. А с нынешними вычислительными мощностями на эту скорость можно забить ))

  5. 21
    Дмитрий Щёголев ответил:

    ничего не устарело. кто пишет на си вынужден использовать printf\scanf;
    Между прочим насчет гибкости и скорости- вывод в ofstream работает медленнее чем fprintf и для софта, котрый должен быстро работать с файлами fprintf предпочтительнее.

  6. 20
    Андрей Куликов ответил:

    Да именно из C99. И даже не отсутствовать, а интерпретироваться по разному.

  7. 19
    Леонид Максимов ответил:

    не встречал еще случаев несовместимости. разве что что-нибудь из C99 может отсутствовать в C++.

  8. 18
    Андрей Куликов ответил:

    >> си++, кстати, обратно совместим с си,

    К сожалению не полностью.

    А функции не отмирающие, хотя бы потому, что С существует и отдельно от С++ и там пользуются именно ими. Хотя scanf не очень красивая функция в отличие от printf даже. )

  9. 17
    Thefallen Angel ответил:

    Вот хороший ссайт с софтом
    //abc.ru/p/33740/soft

  10. 16
    Ден Савченко ответил:

    Леонид maxleo Максимов
    Может я не совсем корректно выразился. Для функции в качестве параметра передается указатель на поток.

    Про обратную совместимость я согласен, но в просто С объектный подход не был реализован. Отсюда я и вижу разницу. Всетаки необходимый образ мышления для процедурных языков и объектно-орентированных весьма различен…

  11. 15
    Александр Чигринец ответил:

    Возможно, что и из-за безопасности. Но у меня сложилось вмечатление, что код со scanf менее устойчив, по сравнению с cin.

  12. 14
    Аристарх Анонимусов ответил:

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

  13. 13
    Александр Чигринец ответил:

    При компиляции спп проекта под MS VS 2005 на функцию scanf компилятор выдаёт предупреждение, что функция obsolete.

  14. 12
    Аристарх Анонимусов ответил:

    > неудобные и ныне отмирающие, за исключением идиотских лаб для 1 курса.
    в самом деле? вот так новость! а попробуйте поискать эти два слова в поисковиках кода:
    printf: Results 1 – 10 of about 6,600,000
    cout: Results 1 – 10 of about 395,000
    И кто тут отмирает?

    Ничего тут не отмирает. Масса проектов на С пишутся, и повсеместно используется printf.

  15. 11
    Леонид Максимов ответил:

    printf и scanf – это вовсе не устаревшие методы си. это функции вывода в stdout и чтения из stdin (два последних – это стандартные файловые дескрипторы вывода и ввода). не могу назвать их и устаревшими – нигде они не отмечены как obsolete. просто это функции, существующие уже несколько десятилетий. то, что они менее гибкие, не делает их менее юзабельными, просто ими надо уметь пользоваться.

    си++, кстати, обратно совместим с си, так что вряд ли это разные языки… просто си++ – дальнейшее развитие си.

    ЗЫ: научите направлять поток в функцию :)

  16. 10
    Ден Савченко ответил:

    cin и cout это есть потоки ввода-вывода, заточенные для работы с консолью. Им полностью соответствуют файловые ifstreamи ofstream, а также стандартный поток ошибок cerr. Операторами в потоках являются << и >> , которые и перегружены для всех (кроме пользовательских, что, в общем-то, не проблема при прямых руках) типов данных. Преимуществом потоковых методов является их гибкость – поток можно направить, например, в функцию, которая шлет все в сеть бродкастом в бинарном виде. Конечно же, это ООП, а стало быть С++.

    printf и scanf это устаревшие методы С (НЕ С++!!! Это РАЗНЫЕ языки!!!), неудобные и ныне отмирающие, за исключением идиотских лаб для 1 курса.

    ЗЫ. cin и cout дествительно реализованы в стандартной библиотеке

    ЗЗЫ. Сорри, если всетаки чтото попутал. Особенно про printf и scanf =)

  17. 9
    Artyom Murzin ответил:

    вот.. я думаю вопрос только стоит о типе ввода/вывода

  18. 8
    Nikolay Bystritskiy ответил:

    cin и cout это чисто С++ функции
    к примеру, если в mandriva linux в katewrite компилировать через cc name.cc (компиялятор С), то cin и cout не сработают, если gcc(g++) name.cpp (компилятор С++) то работает то и это… "+" с cin и coutне надо париться с типом вывода…

  19. 7
    Максим Вальтер ответил:

    #5 Насколько я понимаю cin, cout вызывают соотвествующие методы объектов которые подаются им на вход, следовательно память они занимают минимум.

  20. 6
    Владимир Зевахин ответил:

    cin cout — это не классы, а объекты вроде

  21. 5
    Ольга Красова ответил:

    первый два – это классы, вторые две – функции
    или первые 2 из stl, а вторые сишные

  22. 4
    Александр Поляков ответил:

    Получается, что на cin и cout выделяется больше памяти, чем
    на printf и scanf

  23. 3
    Алексей Сторожев ответил:

    cin и cout это кажется чисто С++ фичи, std

  24. 2
    Artyom Murzin ответил:

    ну главное отличие в том что cout перегружены для всех типов..а в printf и scanf это нужно отслеживать самому. cin и cout конечно!

  25. 1
    Александр Поляков ответил:

    Народ, Чем отличается cin и cout от printf и scanf?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.