如何使用C ++中的特定路径在本地计算机中打开文件的位置?
路径输入:
D:downloads/sample.txt
输出:执行后,文件应自动打开。
答案 0 :(得分:1)
请注意,directories(或“文件夹”)对于C ++ 11或C ++ 14标准是未知的。 C ++ 17具有来自<filesystem>
标准头的std::filesystem
命名空间。
另请注意,在Windows上file paths中的目录分隔符是反斜杠\
(但在POSIX和Linux上它是正斜杠/
)。某些运行时系统(和C ++标准库)可能会在Windows上的文件路径中将正斜杠/
转换为反斜杠\
。检查您的文档,看看您的实现是否进行了转换。
许多框架库(包括Qt&amp; POCO&amp; Boost)提供与目录,文件,路径和文件系统相关的抽象。
我没有Windows(我很高兴只在工作和家中使用Linux),但我想你可以通过D:downloads\sample.txt
作为std::ifstream
的路径。当然,你需要在文字字符串中转义反斜杠:
std::ifstream myinput("D:downloads\\sample.txt");
(我想downloads
应该以大写Downloads
开头,但是我让您检查一下,同样在法语系统上它可能是一个不同的目录Téléchargements
但你应该检查;我建议使用一些绝对文件路径,如D:\Downloads\sample.txt
;当然你需要在文字字符串中转义两个反斜杠)
请注意,文件路径不是URL(但使用file:
方案启动的URL 通过其文件路径指定本地文件)。 AFAIK你需要一些外部库来处理这样的URL。如果您坚持提供完整的网址,那么您最好在实践中使用一些HTTP客户端库(例如libcurl),因为大多数网址都是针对HTTP的。
您稍后可能会测试输入流是否正确打开:
if (!myinput.is_opened())
throw throw std::runtime("failed to open myinput");
然后你可以使用例如operator >>来解析它
int x=0;
myinput >> x;
您稍后可以使用一元operator !来检查输入解析失败。