此python代码用C/ c++编写
This python code in C/C++
我有这样的代码:
#!/usr/bin/python
import urllib
print 'Insert page to download:'
page = raw_input()
filehandle = urllib.urlopen(page)
myFile = open('file.html','w')
for lines in filehandle.readlines():
myFile.write(lines )
myFile.close()
filehandle.close()
这基本上只是下载输入的网页并将其写入file.html。
我想知道如何使用C/c++做到这一点。如果有一种方法,但它不像python那样直接,我能做什么或搜索得到类似的结果?
另外,我知道套接字编程的存在,但我还不是很好,我只是在寻找一个快速和肮脏的解决方案。
谢谢。
尝试libcurl库,它为C(以及包括c++在内的许多其他语言)提供URL下载函数。
如果你正在为Windows编写代码,你也可以使用Windows Internet库。
我推荐libcurl,这是我通常使用的快速和肮脏的解决方案。
通常,当您在桌面环境(如GNOME和KDE)中编程时,您可以使用该环境中的功能,这些功能可以在GUI中使用,并且与文件选择器窗口、进度条等一起使用更容易。
如果您为GNOME环境编程(或安装了GNOME库),那么这个程序几乎与您的Python程序做相同的事情,除了它不转换行尾字符,它逐字复制CR和LF,并且它使用程序参数而不是提示用户输入。哦,它没有给出任何错误信息,它只是退出,不知道为什么。但它确实有一个优点,它可以在gnome可以处理的任何两个文件之间进行复制,无论是本地文件还是远程文件系统,并且您可以使用不带路径的文件名或使用~作为您的主目录。
/*
File: mycopy.c
Compile with: gcc -Wall -g -c mycopy.c `pkg-config --cflags gio-2.0`
Link with: gcc -Wall -g mycopy.o -o mycopy `pkg-config --libs gio-2.0`
See: http://stackoverflow.com/questions/6726499/this-python-code-in-c-c
*/
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
int main( int argc, char*argv[])
{ GFile *source, *dest;
gboolean success;
if( argc!=3 )
exit( 2 );
g_type_init();
source = g_file_new_for_commandline_arg( argv[1] );
dest = g_file_new_for_commandline_arg( argv[2] );
success = g_file_copy( source, dest, 0, 0, 0, 0, 0 );
if( !success )
exit( 2 );
exit( 0 );
}
如果您想在Linux中快速地从网页复制,那么您可以挂载目录(也称为。"网站")放入文件系统,并在代码中使用splice(参见man 2 splice
)来传输数据。我最近没有检查过这个,但是大多数现成的库在我上次检查时都没有这样做。您还可以(最好?)使用shell命令mount
和cp
来完成此操作(上次我进行基准测试时,对于任何大型文件,这比使用libcurl或curl或wget shell命令的C代码更快)。
快速而肮脏的答案是使用python代码并从您的c++代码中剥离,或者嵌入python并运行该代码…
无论如何你想要的是一个C/c++的http客户端库。我曾经使用过C语言的libcurl,它是那种令人愉快的东西!
- 正在为Xtensa simcall函数编写回调函数
- 在程序中编写脚本来编写和编译代码
- 编写时C++中的输入重定向问题
- 在C++中,如何在类和函数(可能是模板化的)的头中编写完整的实现
- c++多进程编写一个唯一的文件
- 如何用C++编写BFS函数
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- 为C++03编译器编写部分unique_ptr,该编译器与较新的编译器在公共代码库上运行
- 如何为 C 型字符串数组编写 getter 和 setter?
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 编写一个函数以使用 n 百分比的 CPU 使用率
- 如何使用OpenCV-C++编写*.mp4视频?
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 如何编写带有异常的构造函数
- 如何为包含头文件的目标编写生成文件?
- 如何编写一个完美的缩写函数模板?
- 如何编写已继承的大纲构造函数?
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起