Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.64
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
#1

cin vs scanf - C++

20.03.2009, 10:48. Просмотров 4757. Ответов 30
Метки нет (Все метки)

Народ, объясните мне, почему многие предпочитают функцию scanf? ИМХО, cin для ввода данных гораздо проще... Может кто знает, что да как, да меня просветит темного.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
20.03.2009, 11:21     cin vs scanf #2
Отлично реализован форматированный ввод. Да и С это мне С больше нравится, чем С++.
XuTPbIu_MuHTAu
Эксперт С++
2222 / 737 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
20.03.2009, 11:22     cin vs scanf #3
Время от времени использую sscanf, sprintf. Удобные штуки.
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
20.03.2009, 11:25  [ТС]     cin vs scanf #4
всегда мне говорили не мешай в кучу с и с++...
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
20.03.2009, 11:57     cin vs scanf #5
Правильно говорили
Потому что в С++ я использую cin
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
20.03.2009, 12:01  [ТС]     cin vs scanf #6
Vourhey, ну я еще не волшебник, только учусь))) просто со сканфом вечно траблы... юзаю только, когда не лень помогать студентам на форуме, вот и всех тонкостей не знаю...


а еще, Vourhey, ты знаешь, почему нельзя их мешать эти два языка?
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
20.03.2009, 13:06     cin vs scanf #7
Да почему, можно. Но некрасиво.
Если ты подключил, например, iostream со своими потоками, то зачем подключать, например, stdio, который опять для себя откроет strin, stdout и т. д? Смысла нет.
Lord_Voodoo
Супер-модератор
8577 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
20.03.2009, 13:50  [ТС]     cin vs scanf #8
я просто слышал, что такое лучше не делать... понятное дело, что можно... просто думал есть какие-то причины избегать этого, глобальные и зловещие)))
я слышал что-то про возможные проблемы из-за возможности переопределения функций в с++... вот про си точно не знаю, но вроде бы нет такой возможности
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.03.2009, 13:53     cin vs scanf #9
http://bookc.narod.ru/bb13.html

насчёт cin не знаю, так как не изучал
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
20.03.2009, 18:15     cin vs scanf #10
scanf использовать удобней, ибо понятней как он работает с типами данных.
так же как и printf.
а потоки уже давненько не применял, т.к. негде.

Помню давным-давно "врачи" мне посоветовали использовать printf.
Mecid
678 / 227 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
20.03.2009, 19:31     cin vs scanf #11
кто на Си шкодит вот им и scanf
да он и побыстрее,ручное форматирование
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
22.01.2011, 21:37     cin vs scanf #12
нужно ввести три числа разделенные '/'
в случае со scanf( " %d/%d/%d ", &a, &b, &c); все вроде просто.
а как быть с cin?
RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
22.01.2011, 22:12     cin vs scanf #13
Цитата Сообщение от no0ker Посмотреть сообщение
нужно ввести три числа разделенные '/'
Как часто тебе требуется ввести три числа, разделенные '/' ?

Добавлено через 50 секунд
обычно вводим числа через пробел или через Enter. И причем тут '/' ?
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 22:17     cin vs scanf #14
RUSya82, дата например
потом через потоки все таки довольно неудобно выводить, манипуляторы прямо не самое удобное, что придумали в жизни
stringstream довольно тяжеловесная замена sprintf
вообщем я не понимаю фанатизма когда нельзя использовать printf
а вот со scanf'ом еще можно подумать
no0ker
22.01.2011, 22:18
  #15

Не по теме:



RUSya82, не часто. но бывает.

alex_x_x, ну ты телепат! =)

RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
22.01.2011, 22:43     cin vs scanf #16
Ну да, наверное вы в чем то правы, но в большинстве программ( а писал я только по учёбе), мне было проще использовать cin, чем scanf.
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
22.01.2011, 22:50     cin vs scanf #17
Большинство использующих сишные функции просто не понимают идеологии С++ (или просто не дружат со стандартной библиотекой ). Преимущество потокового ввода - строгая типизация и защита от потенциальных ошибок, а семейство функций print/scan работают с переменными как с сырой памятью, слабо типизированы и подвержены ошибкам. Ну а тем кому охота разбирать строки - С++ предоставляет reg exp.
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 23:11     cin vs scanf #18
ну вообщем единственная проблема безопасность, ну я помню подобная тема была
все сошлись, что когда появятся шаблоны с переменным числом параметров - всем будет щастье
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.01.2011, 23:41     cin vs scanf #19
У обоих подходов есть плюсы и минусы. Использование той или иной технологии должно базироваться на разумности и соответствии поставленной задаче. Не стоит так же забывать об унификаци и стайл гайдах проекта.
Смешивание тоже может быть полезно. Например, логирование хорошо реализуется при помощи потоков, а интернационализация облегчается при использовании stdio за счет динамического позиционирования переменных.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2011, 09:07     cin vs scanf
Еще ссылки по теме:

C++ Заменить printf на cout, scanf на cin
C++ Scanf vs cin (double variant)
Отличие printf/scanf от cout/cin C++
Ограничение на ввод символов scanf() и cin C++
C++ Заменить cout на printf а cin на scanf

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
23.01.2011, 09:07     cin vs scanf #20
может быть вот так?
C++
1
2
3
char i; 
int a, b;
cin >> a >> i >> b;
Добавлено через 15 секунд
может быть вот так?
C++
1
2
3
char i; 
int a, b;
cin >> a >> i >> b;
Yandex
Объявления
23.01.2011, 09:07     cin vs scanf
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru