cout vs printf30.09.2010, 12:17. Показов 25039. Ответов 54
Метки нет (Все метки)
0
|
|
| 30.09.2010, 12:17 | |
|
Ответы с готовыми решениями:
54
Printf() - Cout printf > cout Cout в printf |
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
||
| 27.06.2020, 00:39 | ||
|
Потоки вывода в С++ полностью инкапсулируют в себе все детали целевого потока вывода, в том числе на уровне run-time полиморфизма, тем самым позволяя нам переисползовать любой код вывода в поток независимо от того, в какой поток мы выводим данные. И количество разнообразных потоков - бесчисленно. А через механизм printf/sprintf/aspprintf и т.д. ничего подобного невозможно. Любые попытки приблизиться к мощи С++ потоков со стороны printf потребуют тонн, тонн и тонн надстроечного "гамнокода", который фактически сведется к ручной перереализации C++ потоков на стороне С.
0
|
||
|
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||||||
| 27.06.2020, 00:48 | ||||||
|
Копать другой инструмент имеет смысл только если текущего уже не хватает, либо не вписывается в окружение.
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
| 27.06.2020, 01:19 | ||||||
|
0
|
||||||
|
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
|
| 27.06.2020, 09:19 | |
|
hoggy, знаешь, мне уже надоело разжевывать тебе очевидные вещи. Попробуй просто перечитать тред.
1
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
|
| 27.06.2020, 11:06 | |
|
COKPOWEHEU, почему UB, я не понимаю?
Доступ к общему ресурсу из разных потоков всегда носит некоторую неопределённость в порядке доступа, но это не делает его UB. Похоже, что printf получает доступ к консоли (общему ресурсу) один раз на один вызов функции или типа того. А в std доступ к консоли выполняется отдельно в каждом операторе вывода <<.
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
||
| 27.06.2020, 12:48 | ||
printf можно условно считать неделимым. А для std неделимым будет только вызов одного оператора << в выражении.
0
|
||
|
|
|
| 27.06.2020, 13:13 | |
|
Более вероятнее что до std::endl когда буфер будет сброшен в stdout.
Но вообще это само по себе странный случай писать из разных потоков в консоль без синхронизации. Главная проблема printf это безопасность, частая ошибка неверный подбор флагов. Вот интересно будет ли нормальный форматер строк в С++
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
||
| 27.06.2020, 13:19 | ||
|
0
|
||
|
|
||
| 27.06.2020, 13:26 | ||
|
Не по теме: Я вот хотел бы попробовать написать свой qDebug() или поток с выводом через ConsoleWrite что бы кириллицу нормально выводить и с раскраской символов как в python coloramа но никак не возьмусь. Добавлено через 1 минуту
0
|
||
|
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
|||||||||||
| 27.06.2020, 14:05 | |||||||||||
|
Ну и главное Avazart сказал: а что потом с этой кашей делать? Оператор << возвращает объект потока. То есть операция std::cout << a << b << c; разворачивается во что-то такое:
1
|
|||||||||||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
||
| 27.06.2020, 14:40 | ||
printf имеет все возможности для организации атомарности, тогда как конструкция из нескольких операторов << потенциально не может быть атомарной.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 27.06.2020, 15:56 | |||
|
разницу понимаешь между unspecified и undefined? и кстати, нет никакой каши из строк имеет место быть каше из буковок например, один поток выводит маму: std::cout << "мама";а другой поток выводит папу: std::cout << "папа";в результате может получится: мапапамаслово было разорвано и смешалось с выводом от другого потока. Добавлено через 12 минут вот например: Начальное значение ссылки на неконстантный пар-р должно быть левосторонним значением вот здесь ещё какая-то реализация: Std::thread приостановка потока вопрос лишь в том: нужна ли атомарная версия в общем случае? я думаю, что лучше пусть будет обычный std::cout, и его атомарный собрат. а дальше программист пусть сам cпляшет от задачи.
1
|
|||
|
|
||||
| 27.06.2020, 16:22 | ||||
|
Добавлено через 1 минуту
1
|
||||
| 27.06.2020, 16:22 | |
|
printf и cout
Cout и printf
Замена printf на cout Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|