我使用ifstream打开文件,然后从中读取。 当我给出本地文件的位置时,我的程序工作正常 在我的系统上。 例如 /root/Desktop/abc.xxx工作正常
但是一旦该位置在http服务器上,该文件就失败了 打开。 例如 http://192.168.0.10/abc.xxx无法打开。
使用URL地址时,ifstream是否有替代方案?
感谢。
答案 0 :(得分:5)
标准C ++库中没有用于通过http协议访问数据的实用程序。
另一个选择是拥有一个虚拟文件系统,将远程http文件映射为本地文件。这样您就不必修改应用程序来访问http。像http://okmij.org/ftp/HTTP-VFS.html
这样的东西答案 1 :(得分:3)
ifstream不会读取HTTP服务器上的文件。它只会读取本地文件。
答案 2 :(得分:2)
ifstream
中的f
适用于file
,而非socket
。
你需要制作一个HTTP GET Request然后流式传输响应,这是一个完全不同的操作。
考虑使用boost::asio
或类似内容。 [Examples]
<强>更新强>
由于Web服务器位于您的局域网上(根据IP地址判断 - 不确定为什么人们仍然坚持在这些令人兴奋的DNS时代使用它们,但那是由by),您可能会挂载包含的文件系统本地计算机上的所需文件,使用NFS或类似文件。然后你就可以执行文件操作,使用ifstream进行读取。
答案 3 :(得分:0)
ifstream仅适用于文件系统上可访问的文件,而不适用于Web服务器。