Джаву тоже используют. Но, угадайте, на чём написана сама виртуальная машина Джавы? Кроме того, прошивка сотовых телефонов на джава – большая редкость. Так что основной язык С или С++.
2 Дмитрий Scandalous Щёголев
>Между прочим насчет гибкости и скорости…
Скорость – да. Но не гибкость. А с нынешними вычислительными мощностями на эту скорость можно забить ))
ничего не устарело. кто пишет на си вынужден использовать printf\scanf;
Между прочим насчет гибкости и скорости- вывод в ofstream работает медленнее чем fprintf и для софта, котрый должен быстро работать с файлами fprintf предпочтительнее.
А функции не отмирающие, хотя бы потому, что С существует и отдельно от С++ и там пользуются именно ими. Хотя scanf не очень красивая функция в отличие от printf даже. )
Леонид maxleo Максимов
Может я не совсем корректно выразился. Для функции в качестве параметра передается указатель на поток.
Про обратную совместимость я согласен, но в просто С объектный подход не был реализован. Отсюда я и вижу разницу. Всетаки необходимый образ мышления для процедурных языков и объектно-орентированных весьма различен…
Это по причине безопасности, которая по мнению Майкрософт может быть под угрозой, при использовании этой функции. Ножом можно убить человека, однако они лежат у вас на кухне: просто надо правильно пользоваться функцией.
> неудобные и ныне отмирающие, за исключением идиотских лаб для 1 курса.
в самом деле? вот так новость! а попробуйте поискать эти два слова в поисковиках кода:
printf: Results 1 – 10 of about 6,600,000
cout: Results 1 – 10 of about 395,000
И кто тут отмирает?
Ничего тут не отмирает. Масса проектов на С пишутся, и повсеместно используется printf.
printf и scanf – это вовсе не устаревшие методы си. это функции вывода в stdout и чтения из stdin (два последних – это стандартные файловые дескрипторы вывода и ввода). не могу назвать их и устаревшими – нигде они не отмечены как obsolete. просто это функции, существующие уже несколько десятилетий. то, что они менее гибкие, не делает их менее юзабельными, просто ими надо уметь пользоваться.
си++, кстати, обратно совместим с си, так что вряд ли это разные языки… просто си++ – дальнейшее развитие си.
cin и cout это есть потоки ввода-вывода, заточенные для работы с консолью. Им полностью соответствуют файловые ifstreamи ofstream, а также стандартный поток ошибок cerr. Операторами в потоках являются << и >> , которые и перегружены для всех (кроме пользовательских, что, в общем-то, не проблема при прямых руках) типов данных. Преимуществом потоковых методов является их гибкость – поток можно направить, например, в функцию, которая шлет все в сеть бродкастом в бинарном виде. Конечно же, это ООП, а стало быть С++.
printf и scanf это устаревшие методы С (НЕ С++!!! Это РАЗНЫЕ языки!!!), неудобные и ныне отмирающие, за исключением идиотских лаб для 1 курса.
ЗЫ. cin и cout дествительно реализованы в стандартной библиотеке
ЗЗЫ. Сорри, если всетаки чтото попутал. Особенно про printf и scanf =)
cin и cout это чисто С++ функции
к примеру, если в mandriva linux в katewrite компилировать через cc name.cc (компиялятор С), то cin и cout не сработают, если gcc(g++) name.cpp (компилятор С++) то работает то и это… "+" с cin и coutне надо париться с типом вывода…
24 апреля 2008 в 13:02
Джаву тоже используют. Но, угадайте, на чём написана сама виртуальная машина Джавы? Кроме того, прошивка сотовых телефонов на джава – большая редкость. Так что основной язык С или С++.
24 апреля 2008 в 13:00
А на мобильных устройствах, насколько я знаю, используют жабу. Или это не так?
23 апреля 2008 в 13:02
Углурк РАБОТАЮ Савченко, вычислительные мощности мобильных устройств совсем не так велики пока.
23 апреля 2008 в 13:00
2 Дмитрий Scandalous Щёголев
>Между прочим насчет гибкости и скорости…
Скорость – да. Но не гибкость. А с нынешними вычислительными мощностями на эту скорость можно забить ))
22 апреля 2008 в 17:04
ничего не устарело. кто пишет на си вынужден использовать printf\scanf;
Между прочим насчет гибкости и скорости- вывод в ofstream работает медленнее чем fprintf и для софта, котрый должен быстро работать с файлами fprintf предпочтительнее.
21 апреля 2008 в 6:05
Да именно из C99. И даже не отсутствовать, а интерпретироваться по разному.
19 апреля 2008 в 1:01
не встречал еще случаев несовместимости. разве что что-нибудь из C99 может отсутствовать в C++.
18 апреля 2008 в 3:04
>> си++, кстати, обратно совместим с си,
К сожалению не полностью.
А функции не отмирающие, хотя бы потому, что С существует и отдельно от С++ и там пользуются именно ими. Хотя scanf не очень красивая функция в отличие от printf даже. )
17 апреля 2008 в 15:00
Вот хороший ссайт с софтом
//abc.ru/p/33740/soft
17 апреля 2008 в 9:03
Леонид maxleo Максимов
Может я не совсем корректно выразился. Для функции в качестве параметра передается указатель на поток.
Про обратную совместимость я согласен, но в просто С объектный подход не был реализован. Отсюда я и вижу разницу. Всетаки необходимый образ мышления для процедурных языков и объектно-орентированных весьма различен…
17 апреля 2008 в 9:01
Возможно, что и из-за безопасности. Но у меня сложилось вмечатление, что код со scanf менее устойчив, по сравнению с cin.
17 апреля 2008 в 8:03
Это по причине безопасности, которая по мнению Майкрософт может быть под угрозой, при использовании этой функции. Ножом можно убить человека, однако они лежат у вас на кухне: просто надо правильно пользоваться функцией.
17 апреля 2008 в 0:01
При компиляции спп проекта под MS VS 2005 на функцию scanf компилятор выдаёт предупреждение, что функция obsolete.
17 апреля 2008 в 0:00
> неудобные и ныне отмирающие, за исключением идиотских лаб для 1 курса.
в самом деле? вот так новость! а попробуйте поискать эти два слова в поисковиках кода:
printf: Results 1 – 10 of about 6,600,000
cout: Results 1 – 10 of about 395,000
И кто тут отмирает?
Ничего тут не отмирает. Масса проектов на С пишутся, и повсеместно используется printf.
16 апреля 2008 в 23:03
printf и scanf – это вовсе не устаревшие методы си. это функции вывода в stdout и чтения из stdin (два последних – это стандартные файловые дескрипторы вывода и ввода). не могу назвать их и устаревшими – нигде они не отмечены как obsolete. просто это функции, существующие уже несколько десятилетий. то, что они менее гибкие, не делает их менее юзабельными, просто ими надо уметь пользоваться.
си++, кстати, обратно совместим с си, так что вряд ли это разные языки… просто си++ – дальнейшее развитие си.
ЗЫ: научите направлять поток в функцию
16 апреля 2008 в 20:02
cin и cout это есть потоки ввода-вывода, заточенные для работы с консолью. Им полностью соответствуют файловые ifstreamи ofstream, а также стандартный поток ошибок cerr. Операторами в потоках являются << и >> , которые и перегружены для всех (кроме пользовательских, что, в общем-то, не проблема при прямых руках) типов данных. Преимуществом потоковых методов является их гибкость – поток можно направить, например, в функцию, которая шлет все в сеть бродкастом в бинарном виде. Конечно же, это ООП, а стало быть С++.
printf и scanf это устаревшие методы С (НЕ С++!!! Это РАЗНЫЕ языки!!!), неудобные и ныне отмирающие, за исключением идиотских лаб для 1 курса.
ЗЫ. cin и cout дествительно реализованы в стандартной библиотеке
ЗЗЫ. Сорри, если всетаки чтото попутал. Особенно про printf и scanf =)
16 апреля 2008 в 19:04
вот.. я думаю вопрос только стоит о типе ввода/вывода
16 апреля 2008 в 19:01
cin и cout это чисто С++ функции
к примеру, если в mandriva linux в katewrite компилировать через cc name.cc (компиялятор С), то cin и cout не сработают, если gcc(g++) name.cpp (компилятор С++) то работает то и это… "+" с cin и coutне надо париться с типом вывода…
16 апреля 2008 в 18:02
#5 Насколько я понимаю cin, cout вызывают соотвествующие методы объектов которые подаются им на вход, следовательно память они занимают минимум.
16 апреля 2008 в 18:00
cin cout — это не классы, а объекты вроде
16 апреля 2008 в 17:03
первый два – это классы, вторые две – функции
или первые 2 из stl, а вторые сишные
16 апреля 2008 в 17:02
Получается, что на cin и cout выделяется больше памяти, чем
на printf и scanf
16 апреля 2008 в 17:00
cin и cout это кажется чисто С++ фичи, std
16 апреля 2008 в 17:00
ну главное отличие в том что cout перегружены для всех типов..а в printf и scanf это нужно отслеживать самому. cin и cout конечно!
16 апреля 2008 в 16:05
Народ, Чем отличается cin и cout от printf и scanf?