![]() |
|
Модераторы: bsa |
![]()
|
|
| and277 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Читаю форум... И часто вижу в листингах старый стиль зоголовков типа
#include <stdio.h> #include <conio.h> #include <iostream.h> Какое преимущество они дают по сравнению с новым стилем без.h? Ведь новый стандарт кажется считает их устаревшими. Поправьте если я не прав... Также заметил, что в новых учебниках практически нету примеров конструкций ввода вывода - scanf(), printf() и тд. Одни cout << и cin >>. А на форуме засилие scanf() и printf(). Есть ли те задачи которые не возможно решить одними cout и cin + флаги форматирования и тд. Возможно полностью отказаться от scanf(), printf() ? Это сообщение отредактировал(а) and277 - 10.4.2009, 18:41 |
|||
|
||||
| pan2004 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 2 Всего: 9 |
Никакого. Более того - на современных компиляторах они не работают. Но до сих пор народ пользуется такими компиляторами как VS6, Borland C++3.1, которые ничего не знают о новых заголовках. Кроме того, есть C а есть C++. В первом используются и scanf и printf. |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Гугл рекомендует использовать потоки (std::cin, std::cout) только для логирования. Для всего остального желательно использовать printf, scanf http://google-styleguide.googlecode.com/sv...ide.xml#Streams |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
Гугл вообще очень много сомнительных подходов рекомендует использовать. Это сообщение отредактировал(а) UnrealMan - 10.4.2009, 19:09 |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
printf более читабелен чем std::cout , впрочем для реверсера тоже
|
|||
|
||||
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
касательно потоков я уже не в одном месте встречаю нарекание о том, что они будут выводить, чего программист не хотел: Пример из журнала Overload 89. Там автор рекламирует свою библиотеку форматирования FastFormat
выведет: name=001237f0, mass=200kg Это сообщение отредактировал(а) zim22 - 10.4.2009, 19:22 |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
zim22
для вывода wchar_t существует std::wcout не знаю с чего гугл взял что printf, scanf лучше - но есть более авторитетные источники утверждающие обратное и я с ними полностью согласен. Это сообщение отредактировал(а) azesmcar - 10.4.2009, 19:41 |
|||
|
||||
| and277 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Спасибо за ответы. НО:
zim22, что Есть логирование в твоем понимание? GoldFinch, а что за "реверсер"? |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
вывод текста на устройство вывода |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
вот 2 строки выводят практически одно и тоже
какую из строчек вы выберете для написания в свое йпроге ? Это сообщение отредактировал(а) Dem_max - 10.4.2009, 19:31 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| and277 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 9.4.2009 Репутация: нет Всего: нет |
Выберу - 1ое. Всем спасибо за ваши ответы. Вообщем я сделал вывод - cin и cout - не панацея. Нужно использовать и sprintf() и printf() и тд исходя из конкретной задачи. Это сообщение отредактировал(а) and277 - 10.4.2009, 19:47 |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Dem_max да вы извращенец..printf тоже можно так написать чтоб от него тошнило
Dem_max, вот этого вполне достаточно Это сообщение отредактировал(а) azesmcar - 10.4.2009, 19:59 |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
если std:: убрать, то покрасивше смотрится:
|
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
главный недостаток printf и scanf - это то, что они не проверяются компилятором, можно случайно ошибиться в порядке или количестве аргументов и программа упадет или испортит память, еще некоторые любят делать так
к тому-же типы данных, которые она может выводить не ограничены небольшим набором POD типов данных, можно реализовать операторы << и >> для своих классов и выводить с их помощью данные в файл, в консоль итд Добавлено через 3 минуты и 6 секунд если не нравится как выглядит код, использующий потоки, можно использовать библиотеку boost::format
|
||||
|
|||||
| UnrealMan |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
Можно подумать,
выведет то, что хотел программист А как тебе вот такая ошибочка?
Сколько радости будет при переносе корректно работающей программы на 64-битную платформу wsprintf - нестандартная функция. Вместо того чтобы тупо копировать код с другого форума, лучше бы подумал, что именно делается в каждом случае. |
||||||
|
|||||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |