2016-03-30 6 views
0

Не знаю, что такое EOF.C++ EOF? Что я делаю не так?

Я новичок. Мой учитель просто попросил меня не использовать его для «дополнительного кредита».

Я использую urlmon. Вот пример моего кода. Я исследовал и не мог найти ничего полезного.

Если кто-то может указать, где я использую EOF, это было бы удивительно. Если бы вы могли сказать мне альтернативу, это будет еще лучше.

#include <windows.h> 
#include <commctrl.h> 
#include <string> 
#include <urlmon.h> 

typedef HRESULT (WINAPI* lpURLDownloadToFile) (LPUNKNOWN pCaller, 
    LPCTSTR szURL, 
    LPCTSTR szFileName, 
    DWORD dwReserved, 
    LPBINDSTATUSCALLBACK lpfnCB); 

size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) { 
    size_t written; 
    written = fwrite(ptr, size, nmemb, stream); 
    return written; 
} 

void download() 
{ 
    lpURLDownloadToFile URLDownloadToFile; 

    HMODULE hUrlmon = LoadLibrary("URLMON.DLL"); 

    URLDownloadToFile = (lpURLDownloadToFile)GetProcAddress(hUrlmon, "URLDownloadToFileA"); 

    URLDownloadToFile(0, "http://website.com/hi.mov", "hi.mov", 0, 0); 

    return; 
} 
+0

EOF означает 'End of File': http://mathbits.com/MathBits/CompSci/Files/End.htm – Tacocat

+0

** EOF ** означает * конец файла *. Ваш код напрямую не связан с EOF, так как вы загружаете полное содержимое файла в один кусок. Однако код, который вы вызываете для этого, загружает меньшие фрагменты и, вероятно, имеет дело с EOF, чтобы определить, когда он будет завершен. В качестве альтернативы он может отслеживать общий размер загрузки. В этом случае даже код нижнего уровня должен иметь дело с EOF, чтобы убедиться, что все не зависает для слишком короткой загрузки. –

+1

Ты не пользуешься этим. Фактически, вы ничего не делаете, так как у вас нет функции 'main'. Не совсем ясно, что вы спрашиваете. –

ответ

0

Если вы хотите прочитать из файла, программа должна остановиться, когда она дойдет до конца файла. Getc() возвращает специальное значение, известное как EOF, когда он пытается прочитать символ, но конец файла достигнут.