С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/46: Рейтинг темы: голосов - 46, средняя оценка - 4.87
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873

cin vs scanf

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

Студворк — интернет-сервис помощи студентам
Народ, объясните мне, почему многие предпочитают функцию scanf? ИМХО, cin для ввода данных гораздо проще... Может кто знает, что да как, да меня просветит темного.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2009, 10:48
Ответы с готовыми решениями:

Cin точнее scanf?
Здравствуйте. Во время написания кода и попытки понимания возникновения ошибки, отправил на проход тестов два идентичных кода, отличия были...

Операторы cin и scanf
Пример кода: void func(float* p){ cout << "Введите значение"; scanf("%f\n", &p); } Как можно прочитать ссылку через cin ? При...

Из scanf в std::cin
Как тоже самое сделать с помощью std::cin? printf("Введите автора %d книги.\n",i+1); scanf("%31s ",ar.author); ...

30
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.03.2009, 11:21
Отлично реализован форматированный ввод. Да и С это мне С больше нравится, чем С++.
0
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
20.03.2009, 11:22
Время от времени использую sscanf, sprintf. Удобные штуки.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.03.2009, 11:25  [ТС]
всегда мне говорили не мешай в кучу с и с++...
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.03.2009, 11:57
Правильно говорили
Потому что в С++ я использую cin
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.03.2009, 12:01  [ТС]
Vourhey, ну я еще не волшебник, только учусь))) просто со сканфом вечно траблы... юзаю только, когда не лень помогать студентам на форуме, вот и всех тонкостей не знаю...


а еще, Vourhey, ты знаешь, почему нельзя их мешать эти два языка?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.03.2009, 13:06
Да почему, можно. Но некрасиво.
Если ты подключил, например, iostream со своими потоками, то зачем подключать, например, stdio, который опять для себя откроет strin, stdout и т. д? Смысла нет.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.03.2009, 13:50  [ТС]
я просто слышал, что такое лучше не делать... понятное дело, что можно... просто думал есть какие-то причины избегать этого, глобальные и зловещие)))
я слышал что-то про возможные проблемы из-за возможности переопределения функций в с++... вот про си точно не знаю, но вроде бы нет такой возможности
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.03.2009, 13:53
http://bookc.narod.ru/bb13.html

насчёт cin не знаю, так как не изучал
0
Флудер
 Аватар для Ensase
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
20.03.2009, 18:15
scanf использовать удобней, ибо понятней как он работает с типами данных.
так же как и printf.
а потоки уже давненько не применял, т.к. негде.

Помню давным-давно "врачи" мне посоветовали использовать printf.
0
 Аватар для Mecid
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
20.03.2009, 19:31
кто на Си шкодит вот им и scanf
да он и побыстрее,ручное форматирование
0
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
22.01.2011, 21:37
нужно ввести три числа разделенные '/'
в случае со scanf( " %d/%d/%d ", &a, &b, &c); все вроде просто.
а как быть с cin?
0
 Аватар для RUSya82
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
22.01.2011, 22:12
Цитата Сообщение от no0ker Посмотреть сообщение
нужно ввести три числа разделенные '/'
Как часто тебе требуется ввести три числа, разделенные '/' ?

Добавлено через 50 секунд
обычно вводим числа через пробел или через Enter. И причем тут '/' ?
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 22:17
RUSya82, дата например
потом через потоки все таки довольно неудобно выводить, манипуляторы прямо не самое удобное, что придумали в жизни
stringstream довольно тяжеловесная замена sprintf
вообщем я не понимаю фанатизма когда нельзя использовать printf
а вот со scanf'ом еще можно подумать
0
22.01.2011, 22:18

Не по теме:



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

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

0
 Аватар для RUSya82
242 / 120 / 14
Регистрация: 15.10.2010
Сообщений: 395
22.01.2011, 22:43
Ну да, наверное вы в чем то правы, но в большинстве программ( а писал я только по учёбе), мне было проще использовать cin, чем scanf.
0
 Аватар для Manjak
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
22.01.2011, 22:50
Большинство использующих сишные функции просто не понимают идеологии С++ (или просто не дружат со стандартной библиотекой ). Преимущество потокового ввода - строгая типизация и защита от потенциальных ошибок, а семейство функций print/scan работают с переменными как с сырой памятью, слабо типизированы и подвержены ошибкам. Ну а тем кому охота разбирать строки - С++ предоставляет reg exp.
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.01.2011, 23:11
ну вообщем единственная проблема безопасность, ну я помню подобная тема была
все сошлись, что когда появятся шаблоны с переменным числом параметров - всем будет щастье
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
22.01.2011, 23:41
У обоих подходов есть плюсы и минусы. Использование той или иной технологии должно базироваться на разумности и соответствии поставленной задаче. Не стоит так же забывать об унификаци и стайл гайдах проекта.
Смешивание тоже может быть полезно. Например, логирование хорошо реализуется при помощи потоков, а интернационализация облегчается при использовании stdio за счет динамического позиционирования переменных.
0
101 / 88 / 7
Регистрация: 17.12.2010
Сообщений: 416
23.01.2011, 09:07
может быть вот так?
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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2011, 09:07
Помогаю со студенческими работами здесь

Переделаем вместе scanf() в cin>>
Был исходник: void Comp::Get() // Ввод данных с клавиатуры =) { printf ("\n Введите действительную часть числа "); scanf...

Scanf vs cin (double variant)
double k = 0.0; scanf("%f", &k); double k1 = 0.0 cin >> k1; Вводим -1,5. Получаем: k = 1.589424581709e-314#DEN double k1...

Заменить cin cout на printf scanf
Преподаватель не хочет принимать код по минимальному основанию системы счисления , из-за того, что вместо функций printf и scanf были...

Заменить cin / cout на scanf / printf
#include<iostream> #include<locale.h> #include<Windows.h> #include<string> #include "123.h" using namespace std; float...

Переделать scanf и printf в cin и cout
#include "stdio.h" #include "math.h" int main() { float S=0; int n=3; printf("For\n"); for (n=3; n <= 9;...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru