怎样用c写一个程序从 一个网页下上载一张图片

怎样用c写一个程序从 一个网页上下载一张图片
怎样用c写一个程序从一个网页上下载一张图片。。。。。怎样用c写一个程序从 一个网页下上载一张图片

------解决方案--------------------
如果是采用纯C语言来实现的,是这样的:
1. 使用socket编程连接到 指定的网页所在的服务器,请求端口采用80(一般web server的对外服务端口是80)
2. 发送http请求,先请求html/text文件内型数据,在请求的数据中找到你想要找的图片名称的存储路径
3.再次发送http请求,请求jpeg/gif(图片类型)格式的数据
4.这样你就能得到图片了.
这几个步骤你需要了解一下http请求的原理及协议的内容(还好http协议比较简单)

如果使用windows平台下做的话,VC里面已经有封装了网页操作的组件,可供直接使用

两种方法,看你个人的选择了. 开发速度快的话,直接采用别的库;有兴趣的话,可以自己实现库
------解决方案--------------------
照着libcurl的例子完成的,仅供参考。
链接的时候要带上libcurl库:
cc simple.c -lcurl
这样运行:
./a http://avatar.profile.****.net/9/D/5/1_a991176515.jpg
在Cygwin环境测试通过。

#include <stdio.h>
#include <curl/curl.h>

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

char *get_fname_from_url(char *url)
{
char *p = url;
while(*p)
p++;
p--;

while(1) {
if(*p == '/')
break;
else
p--;
}

return ++p;
}

int main(int argc, char **argv)
{
CURL *curl;
CURLcode res;
char *url;
FILE *fp;

if (argc == 2)
url = argv[1];
else {
exit(1);
}

curl = curl_easy_init();
if (curl) {
fp = fopen(get_fname_from_url(url), "w");
if(fp == NULL) {
curl_easy_cleanup(curl);
return 1;
}

curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);

/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));

fclose(fp);
/* always cleanup */
curl_easy_cleanup(curl);
}

return 0;
}