2015-04-17 2 views
-4

Этот вопрос меня смущает. Поскольку C++ является надмножеством программиста C, он может свободно использовать функции библиотеки C, такие как printf(), scanf() &, и многие другие. Но мне обычно нравится объектно-ориентированная система ввода-вывода C++. & Мне больше всего нравится использовать cout & cin. Поскольку iostream более безопасен по типу, менее подвержен ошибкам, расширяемый, гибкий & также наследуется. Должен ли я прекратить использование традиционных функций ввода/вывода C из-за преимуществ iostream или изменить мою программу? Какой подход лучше? Где я должен заботиться при смешивании C & C++ I/O. Я знаю, что необходима обратная совместимость с унаследованными программами C, но что я должен делать?Должен ли я смешивать ввод/вывод стиля C & C++ в моей программе на C++?

+1

C++ не супер-набор C. Это другой язык, встраивать также C. –

+0

Try таНос и удалить вместе и посмотреть, как это работает для вас :) –

+1

К по умолчанию идут методы, которые позволяют вам четко выражать то, что вы делаете. Как правило, потоки C++. –

ответ

2

Потоки C++ и C по умолчанию синхронизированы, поэтому вы можете смешать их безопасно. Такое поведение контролируется std::ios_base::sync_with_stdio.


Что касается того, вы должны сделать это? Не имеет значения. У C++ нет универсального руководства по стилю. Некоторые программисты предпочитают интерфейс C++ iostreams, некоторые предпочитают методы C, некоторые смешивают их.

Вот несколько ссылок, которые обсуждают проблему лучше, чем я могу.

Should I switch to C++ I/O streams?

The Duct Tape Programmer - Joel Spolsky

Смежные вопросы