Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/55: Рейтинг темы: голосов - 55, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 06.10.2015
Сообщений: 34

Практическое различие printf и cout

13.02.2016, 21:38. Показов 12188. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, дорогие обитали данного форума. Недавно у нас на 2 курсе началось программирование на C++ (так его гордо называл наш препод), но на первых парах нам выдали практику содержащую оператор printf, хотя практически везде, во множестве литературы и многочисленых хелоу-ворд проектах содержался cout. Так вот, вопрос в чем различие этих операторов?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.02.2016, 21:38
Ответы с готовыми решениями:

Небольшое различие между printf и cout
Заметил, что если я вывожу максимальное или минимальное значение типа char через printf, то это выводится числом, а если через cout, то это...

Cout в printf
Здравствуйте, может кто-нибудь помочь переделать cout в printf на 87-88 строках в данной программе? #include<iostream> ...

printf > cout
Помогите переделать printf("| %3.2f | %3.1f | %7.5f |\n",a,b,y); на cout.

9
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
13.02.2016, 21:59
d1astola, Во-первых, printf - не оператор, как и cout.
Во-вторых, как легче написать,
C++
1
printf("%d\n%s\n%d",x,y,z);
Или
C++
1
cout << x << '\n' << y << '\n' << z << endl;
?
И запомните: printf - функция, cout - поток!
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
14.02.2016, 00:02
d1astola, возможно, вот эта статья Вам поможет.
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
14.02.2016, 01:03
d1astola,
printf, как уже было ранее сказано, это функция. Используется она, как правило, в программах, написанных на чистом Си.
На данном форуме многие не жалуют эту функцию в С++ программах. Использование ее в коде С++ считается дурным тоном.

Другое дело - предопределенный потоковый объект (вероятно, ТС не знаком с понятием объекта) cout из библиотеки iostream.
Использование этого объекта считается уместным в программах на С++, но в чистом Си его использование невозможно по причине его отстутствия.

НО! Оба этих средства служат для вывода информации на экран.
Мешать в одном коде средства языка С++ и чистого Си может считаться извращением.
2
Респект C++
 Аватар для FCommander
23 / 33 / 14
Регистрация: 11.06.2015
Сообщений: 384
14.02.2016, 02:26
printf - функция, cout нет. Вот и отличие.
1
 Аватар для iRomul
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
14.02.2016, 02:58
Ни printf, ни cout не являются операторами. printf - функция из стандартной библиотеки Си, cout - объект класса ostream из стандартной библиотеки Си++.
Объединяет их то, что оба связаны со стандартным потоком вывода (stdout, файл с дескриптором 1).
Вообще я бы отметил такое ключевое отличие - printf принимает переменное число параметров, выводя их тип на основании форматирующей строки. Такой подход мало того, что ограничен только набором стандартных типов (расширения в счет не беру), да еще и небезопасный. Плюсовые стримы используют механизм шаблонов + полиморфизм, благодаря чему обеспечивается безопасность на уровне компилятора, ну и возможность ввода\вывода собственных типов.
Изучить работу и основные форматы printf стоит хотя бы потому, что он используется в множестве других языках, рано или поздно на него можно наткнуться.
2
1 / 1 / 1
Регистрация: 06.10.2015
Сообщений: 34
14.02.2016, 11:49  [ТС]
Спасибо всем за помощь, простите в моем незнании
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
14.02.2016, 12:18
Цитата Сообщение от makfak Посмотреть сообщение
как легче написать,
Эт-т-то ты хороший примерчик написал. А теперь посмотрим на этот
C
1
printf("%-20.20s %04d %7.2f %*.*f %5u %8x\n" .....
Напиши его с cout, вот тогда и будем сравнивать
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
14.02.2016, 12:58
8-BITOV, Знать бы ещё, что такое -20.20s, 04d и т.д. Я просто никогда printf не пользовался.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
14.02.2016, 13:25
Цитата Сообщение от makfak Посмотреть сообщение
Знать бы ещё, что такое -20.20s, 04d
%-20.20s - печать char * в поле 20 позиций с прижимом к левому краю (если больше 20 - обрезается)
%04d - число с лидирующими нулями. 12 напечатает как 0012. Но 12345 так и напечатает без обрезки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2016, 13:25
Помогаю со студенческими работами здесь

printf и cout
У меня возник вопрос, что луче еспользовать в C++, printf/scanf или cout/cin ? Что работает быстрее? Есть такой фрагмент кода ...

Cout и printf
Привет форумчане, не могу разобраться как правильно записать выражение использую не printf, a cout. Вот исходное выражение: ...

cout vs printf
Что лучше и удобней использывать в написаннии программ? cout или printf?

Printf() - Cout
Простой вопрос. Как заменить printf (&quot;%09d&quot;, a); на cout?

Cout в printf
Возможно глупый вопрос, но как переделать cout &lt;&lt; arr - (sum / m) &lt;&lt; &quot; &quot;; в printf? Как только не пытался, программа перестает работать...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru