Если вы передаете файл, который вы генерируете динамически, а также имеете встроенную библиотеку обмена сообщениями между серверами, вы можете легко оповестить своего клиента.
Библиотека обмена сообщениями между клиентом, которую мне нравится и рекомендую, - Socket.io (через Node.js). После того, как ваш серверный сценарий будет создан, генерирующий файл, который будет передан для загрузки, ваша последняя строка в этом скрипте может передать сообщение Socket.io, которое отправляет уведомление клиенту. На клиенте Socket.io прослушивает входящие сообщения, исходящие от сервера, и позволяет вам действовать на них. Преимущество использования этого метода над другими заключается в том, что вы можете обнаружить «истинное» финишное событие после завершения потоковой передачи.
Например, вы можете показать индикатор занятости после нажатия ссылки загрузки, передайте свой файл, выпустите сообщение на Socket.io с сервера в последней строке вашего потокового скрипта, послушайте клиента для получения уведомления, получите уведомление и обновите свой пользовательский интерфейс, скрыв индикатор занятости.
Я понимаю, что большинство людей, которые читают ответы на этот вопрос, могут не иметь такого типа установки, но я использовал это точное решение для отличного эффекта в своих собственных проектах и прекрасно работает.
Socket.io невероятно прост в установке и использовании. Подробнее: http://socket.io/
Можно узнать с std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
Можно использовать < cfloat> . Конкретно:
LDBL_DIG