Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这是C/C++;_C++_Python_C - Fatal编程技术网

C++ 这是C/C++;

C++ 这是C/C++;,c++,python,c,C++,Python,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

我有以下代码:

#!/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那样直截了当,那么我可以做些什么或搜索以获得类似的结果

另外,我知道socket编程的存在,但我还不是很擅长它,我只是在寻找一个快速而肮脏的解决方案

谢谢。

试试这个库,它为C(以及包括C++在内的许多其他语言)提供URL下载功能


如果你正在编写Windows代码,你也可以使用这个库。

< P>快速而肮脏的答案是从你的C++代码中使用那个Python代码和shell,或者嵌入Python并运行那个代码…< /P>
无论如何,您需要的是一个用于C/C++的http客户端库。我有过从C开始的体验,这是一件非常愉快的事情

我是第二个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 );
}
/*
文件:mycopy.c
使用:gcc-Wall-g-cmycpy.c`pkg config--cflags gio-2.0编译`
链接:gcc-Wall-gmycopy.o-omycopy`pkg config--libsgio-2.0`
见:http://stackoverflow.com/questions/6726499/this-python-code-in-c-c
*/
#包括
#包括
#包括
int main(int argc,char*argv[])
{GFile*源,*dest;
巨大的成功;
如果(argc!=3)
出口(2);
g_type_init();
source=g_file_new_用于命令行_arg(argv[1]);
dest=g_file_new_用于命令行_arg(argv[2]);
成功=g_文件_副本(源、目标、0、0、0、0);
如果(!成功)
出口(2);
出口(0);
}

如果您想在Linux中快速地从网页复制,那么可以将目录(也称为“网站”)装入文件系统,并在代码中使用splice(请参见
man 2 splice
)来传输数据。我最近没有检查过这个,但上次检查时,大多数现成的库都没有这样做。您还可以(最好?)使用shell命令
mount
cp
(上次我进行基准测试时,对于任何大型ish文件,这比使用libcurl的C代码或curl或wget shell命令更快)。

您使用的是什么操作系统?此外,你想在C或C++中解决方案吗?这不是同一种语言,我用的是Ubuntu。我知道它们现在是同一种语言,但是C++的解决方案会更好。谢谢,我会研究它。谢谢,我会研究它。好吧!非常感谢你!!