Какой способ ввода-вывода использовать в современном коде? Насколько я понимаю, в стандартной библиотеке есть 3 способа: C-подобный, C++-потоки, C++-без потоков. Может есть ещё варианты (в т.ч. в сторонних библиотеках)? Если в разных ситуациях по-разному, то хотелось бы хотя бы по 1 примеру на каждый нестандартный способ.
P.S. При программировании важно всегда помнить о грамотной настройке буферизации I/O, иначе результаты между методами будут сильно разниться. Буферизация же разницу по скоростям сильно уравнивает.
А иногда удобно использовать "отображение файлов в память". Есть свои плюсы и минусы.
Если читаете/пишете файл мелкими кусками, 100% нужна буферизация. Обычный C ввод-вывод норм, C++ надо смотреть, но может быть тоже норм. Если крупными кусками, то возможны варианты.
Если что-то сетевое-пакетное, то почти 100% лучше брать что даёт ось. На винде это может быть Alertable IO. В Linux - packet_mmap.
Потоки (которые threads, а не streams) всё это дело замедляют и усложняют. Использовать имеет смысл если приёмопередача сильно перемешана с процессорными вычислениями и однопоточный код либо выходит сложноват либо в одно ядро не влазит.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
std::ifstream::read(char_type*, std::streamsize) принимает количество читаемых байт с помощью знакового типа std::streamsize, а std::fread(void*, std::size_t, std::size_t, std::FILE*) -- с помощью...
Пытаюсь подключить bass dll к проекту в c++ builderСкачал архив с
Нужно сделать таблицу 12x12 , почему выводит только первую строку ? Если я сделал вложенный цикл?
Мне нужно знать, какая установлена раскладка клавиатуры пользователя в данный момент (использую в CALLBACK функции)