Почему C ++ все еще использует stdio.h? - PullRequest
6 голосов
/ 16 января 2011

это, вероятно, глупый вопрос, но я не смог найти ответ, который искал.Кроме того, я не был уверен, был ли это вопрос C ++ или вопрос VS2010, но я искал ответ на вопрос технического POV, поэтому я оказался здесь.

Когда вы запускаете новое консольное приложениеПроект в VS2010 автоматически включает stdafx.h, который, в свою очередь, включает stdio.h .Ответы, которые я нашел относительно stdio.h против iostream, были более или менее:

stdio.h был использован в C, а iostream - в C ++

Я не знаюесли это правильно или неправильно, но ...

Мой вопрос: Почему stdio.h все еще автоматически включается в проекты C ++?Разве iostream не будет достаточно?

Ответы [ 4 ]

3 голосов
/ 16 января 2011

Потоки ввода-вывода в старых реализациях C ++ были довольно медленными, и программисты продолжали использовать stdio.h. Очевидно, что это было включено в stdafx.h в прошлом и больше не может быть удалено из этого заголовка, так как удаление его нарушило бы существующий код.

3 голосов
/ 16 января 2011

Обычно проекты создаются с использованием Create Empty Project, так что вы можете самостоятельно настраивать свои включенные и предварительно скомпилированные заголовки.

Я понятия не имею, почему происходит это включение по умолчанию, но это хорошовещь, чтобы настроить свой проект с нуля, как я описал ранее.

0 голосов
/ 16 января 2011

Возможно, потому что visual studio нацелена на программистов Mort, которые не смогли бы выполнить «мою первую программу на c ++» без printf, и они решили, что продукт работает неправильно.

Перед тем как проголосовать, просим Google визуальную студию.

0 голосов
/ 16 января 2011

Даже если вы используете потоковый вывод, возможность выполнять некоторое форматирование - это хорошо. Так что, если ничего другого, иногда будет использоваться sprintf. sprintf живет в stdio.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...