Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
1 | |
cin vs scanf20.03.2009, 10:48. Показов 8527. Ответов 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
|
Почетный модератор
7393 / 2639 / 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
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
|
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 | |
23.01.2011, 09:07 | |
Помогаю со студенческими работами здесь
20
Scanf vs cin (double variant) Заменить cin cout на printf scanf Заменить cin / cout на scanf / printf Переделать scanf и printf в cin и cout Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |