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