按完整路径打开文件
Posted
技术标签:
【中文标题】按完整路径打开文件【英文标题】:open file by its full path 【发布时间】:2013-06-18 12:17:46 【问题描述】:我想询问用户文件所在的完整路径,然后将路径保存在数组中。所以在程序中我想打开那个地方存在的文件。 但不幸的是我不知道如何打开文件。 我试过下面的代码,但它不是真的。
string address;
cin>>address;
ifstream file(address);
如何以这种方式打开文件?
【问题讨论】:
【参考方案1】:实际上,该代码按原样运行 - 至少在当前版本 C++11 中。
在此之前,需要将字符串转换为C风格的字符串:
ifstream file(address.c_str());
尽管您应该注意文件路径中的空格,正如 CapelliC 在他的(现已删除的)答案中提到的那样;为了确保用户可以输入带空格的路径(例如“~/some file.txt
”),请使用std::getline
而不是流运算符:
getline(cin, address);
【讨论】:
【参考方案2】:ofstream myfile;
myfile.open (adresse.c_str());
【讨论】:
【参考方案3】:问题可能是address
中存在空格。
尝试使用 getline(cin, address) 代替(感谢 Konrad 发现问题,我的 C++ 有点生疏......)
【讨论】:
您不能在std::string
上使用 std::cin::getline
。
是的,我会再次删除它!以上是关于按完整路径打开文件的主要内容,如果未能解决你的问题,请参考以下文章
IPython Notebook 打开文件对话框(检索完整路径)