«код, который является C, кроме использования cout и iostream» - мы называем его «C с iostreams», и это то, что подходит для C ++ во многих университетских курсах.
инство пользователей C ++, которые изучили C, предпочитают использоватьprintf
/ scanf
семейство функций, даже когда они кодируют в C ++.
Хотя я признаю, что нахожу интерфейс лучше (особенно POSIX-подобный формат и локализация), кажется, что подавляющее беспокойство вызывает производительность.
Принимая во внимание на этот вопрос:
Как я могу ускорить построчное чтение файла
Похоже, что лучшим ответом является использованиеfscanf
и что С ++ifstream
последовательно в 2-3 раза медленнее.
Я подумал, что было бы здорово, если бы мы могли скомпилировать репозиторий «советов» для улучшения производительности IOStreams, что работает, а что нет.
Вопросы для рассмотрения
буферизация (rdbuf()->pubsetbuf(buffer, size)
)синхронизация (std::ios_base::sync_with_stdio
)обработка локали (можем ли мы использовать урезанную локаль или удалить ее вообще?)Конечно, другие подходы приветствуются.
Примечание: упоминалась «новая» реализация Дитмара Куля, но я не смог найти много подробностей об этом. Предыдущие ссылки кажутся мертвыми ссылками.