코드에 문제가 있습니다. 내 프로그램을 컴파일 한 후 분할 코드 오류가 발생합니다. 간단하게 다운로드 도구를 만들어서 가장 간단한 아이디어를 사용하고 싶습니다. (사용자가 URL과 프로그램 다운로드 파일을 사용자 데스크톱에 입력합니다). 이 프로그램을 작동시키는 방법이나 더 나은 결과로 더 많은 것을 요구하는 코드로 변환하는 방법에 대한 조언을 해줄 수 있습니까?간단하게 libcurl을 사용하여 menager를 Ubuntu에서 다운로드하십시오.
#define CURL_STATICLIB
#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
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;
}
int main(void)
{
CURL *curl;
FILE *fp;
CURLcode res;
int x;
char y[200];
char page;
char outfilename[FILENAME_MAX];
char path_pdf = "/home/user_name/Desktop/document.pdf";
char path_jpg = "/home/user_name/Desktop/picture.jpg";
char path_txt = "/home/user_name/Desktop/document.txt";
char FILEPATH[2] = {path_pdf, path_jpg, path_txt};
printf("Enter file url \n"); // for example http://oi58.tinypic.com/15nk3de.jpg
scanf ("%s",y);
char *url = "y";
printf("Choose type of file:\n [0] - pdf\n [1] - jpg\n [2] - txt\n "); //choose 1
scanf("%d",x);
outfilename[FILENAME_MAX] = FILEPATH[x];
curl = curl_easy_init();
if (curl)
{
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
curl_easy_setopt (curl, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
'char FILEPATH [2] = {path_pdf, path_jpg, path_txt};'. 해당 배열에는 3 개의 요소가 있고 2는 아니다. 또한 C의 문자열은'char'가 아닌'char *'유형이다. – RaptorDotCpp