Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
1 | |
cin vs scanf20.03.2009, 10:48. Показов 8341. Ответов 30
Метки нет Все метки)
(
Народ, объясните мне, почему многие предпочитают функцию scanf? ИМХО, cin для ввода данных гораздо проще... Может кто знает, что да как, да меня просветит темного.
0
|
|
20.03.2009, 10:48 | |
Ответы с готовыми решениями:
30
Cin точнее scanf? Операторы cin и scanf Из scanf в std::cin Переделаем вместе scanf() в cin>> |
![]() 2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
20.03.2009, 11:22 | 3 |
Время от времени использую sscanf, sprintf. Удобные штуки.
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
20.03.2009, 11:25 [ТС] | 4 |
всегда мне говорили не мешай в кучу с и с++...
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
20.03.2009, 12:01 [ТС] | 6 |
Vourhey, ну я еще не волшебник, только учусь))) просто со сканфом вечно траблы... юзаю только, когда не лень помогать студентам на форуме, вот и всех тонкостей не знаю...
а еще, Vourhey, ты знаешь, почему нельзя их мешать эти два языка?
0
|
Почетный модератор
7390 / 2636 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
20.03.2009, 13:06 | 7 |
Да почему, можно. Но некрасиво.
Если ты подключил, например, iostream со своими потоками, то зачем подключать, например, stdio, который опять для себя откроет strin, stdout и т. д? Смысла нет.
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
20.03.2009, 13:50 [ТС] | 8 |
я просто слышал, что такое лучше не делать... понятное дело, что можно... просто думал есть какие-то причины избегать этого, глобальные и зловещие)))
я слышал что-то про возможные проблемы из-за возможности переопределения функций в с++... вот про си точно не знаю, но вроде бы нет такой возможности
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
20.03.2009, 13:53 | 9 |
0
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
20.03.2009, 18:15 | 10 |
scanf использовать удобней, ибо понятней как он работает с типами данных.
так же как и printf. а потоки уже давненько не применял, т.к. негде. Помню давным-давно "врачи" мне посоветовали использовать printf.
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
20.03.2009, 19:31 | 11 |
кто на Си шкодит вот им и scanf
да он и побыстрее,ручное форматирование
0
|
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
|
|
22.01.2011, 21:37 | 12 |
нужно ввести три числа разделенные '/'
в случае со scanf( " %d/%d/%d ", &a, &b, &c); все вроде просто. а как быть с cin?
0
|
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
|
|
22.01.2011, 22:12 | 13 |
Как часто тебе требуется ввести три числа, разделенные '/' ?
Добавлено через 50 секунд обычно вводим числа через пробел или через Enter. И причем тут '/' ?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
22.01.2011, 22:17 | 14 |
RUSya82, дата например
потом через потоки все таки довольно неудобно выводить, манипуляторы прямо не самое удобное, что придумали в жизни stringstream довольно тяжеловесная замена sprintf вообщем я не понимаю фанатизма когда нельзя использовать printf а вот со scanf'ом еще можно подумать
0
|
no0ker
|
22.01.2011, 22:18
#15
|
Не по теме:
0
|
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
|
|
22.01.2011, 22:43 | 16 |
Ну да, наверное вы в чем то правы, но в большинстве программ( а писал я только по учёбе), мне было проще использовать cin, чем scanf.
0
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
22.01.2011, 22:50 | 17 |
Большинство использующих сишные функции просто не понимают идеологии С++ (или просто не дружат со стандартной библиотекой ). Преимущество потокового ввода - строгая типизация и защита от потенциальных ошибок, а семейство функций print/scan работают с переменными как с сырой памятью, слабо типизированы и подвержены ошибкам. Ну а тем кому охота разбирать строки - С++ предоставляет reg exp.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
22.01.2011, 23:11 | 18 |
ну вообщем единственная проблема безопасность, ну я помню подобная тема была
все сошлись, что когда появятся шаблоны с переменным числом параметров - всем будет щастье
0
|
4462 / 2398 / 857
Регистрация: 29.11.2010
Сообщений: 5,311
|
|
22.01.2011, 23:41 | 19 |
У обоих подходов есть плюсы и минусы. Использование той или иной технологии должно базироваться на разумности и соответствии поставленной задаче. Не стоит так же забывать об унификаци и стайл гайдах проекта.
Смешивание тоже может быть полезно. Например, логирование хорошо реализуется при помощи потоков, а интернационализация облегчается при использовании stdio за счет динамического позиционирования переменных.
0
|
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
|
|||||||||||
23.01.2011, 09:07 | 20 | ||||||||||
может быть вот так?
может быть вот так?
0
|
23.01.2011, 09:07 | |
Помогаю со студенческими работами здесь
20
Scanf vs cin (double variant) Заменить cin cout на printf scanf Заменить cin / cout на scanf / printf Переделать scanf и printf в cin и cout Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |