首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fstream不解析路径

fstream不解析路径
EN

Stack Overflow用户
提问于 2015-01-21 20:55:00
回答 2查看 3.8K关注 0票数 0

我是c++新手,尝试编写一个简单的函数,将字符串保存到文件中。当我将完整的路径传递给fstream时,函数可以工作,但它不解析相关的路径。

这是我代码的相关部分

代码语言:javascript
复制
#include <iostream>
#include <fstream>

void writeToFile ()
{
    std::fstream fs;
    fs.open ("/home/blabla/Documents/test.txt", std::fstream::in | std::fstream::out | std::fstream::app);
    fs << " test content";

    fs.close();
}

这很好,但是我想在文件夹中创建这个文件,我的程序就是在这个文件夹中执行的,所以我尝试了

代码语言:javascript
复制
fs.open ("./test.txt", std::fstream::in | std::fstream::out | std::fstream::app);

我也试过

代码语言:javascript
复制
fs.open ("~/Documents/test.txt", std::fstream::in | std::fstream::out | std::fstream::app);

他们都没有创建一个新文件,我也没有收到任何错误消息。

我找到了这篇文章,这表明,我可以传递到fstream的相对路径,但只给出了windows示例。如何使用具有相对路径的fstream对象?

我在Linux上工作,目标环境是debian。

我很感谢你的暗示和建议,迈克尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-21 21:48:29

你的程序

代码语言:javascript
复制
#include <iostream>
#include <fstream>

void writeToFile () {
    std::fstream fs;
    fs.open ("./test.txt", std::fstream::in | std::fstream::out | std::fstream::app);
    fs << " test content";

    fs.close();
}

int main() {
    writeToFile();
}

柯尔鲁上对我来说非常好。

正如您从ls输出中看到的那样,创建了该文件

代码语言:javascript
复制
a.out      << The executable program
main.cpp   << The source
test.txt   << The created text file

cat至少转储文件的内容。

代码语言:javascript
复制
 test content

正如我在注释中提到的,像~/Documents/test.txt这样的路径是由shell计算的,而如果您在文件所在的同一目录中运行程序,则./test.txt应该用于选择现有文件。

“他们都没有创建一个新文件,我也没有收到任何错误消息。”

如果std::fstream::open()因某种原因失败,您将永远不会收到任何错误消息。

在调用之后,您必须检查流状态,比如。

代码语言:javascript
复制
 if(!fs) { std::cerr << "Could not open file" << std::endl; }

例如,您可能没有在此目录中创建文件的权限。

另一个选项是使用std::basic_ios::exceptions()函数的std::fstream(),当流状态遇到错误时触发异常。

票数 0
EN

Stack Overflow用户

发布于 2015-01-21 21:20:00

相对路径确实适用于流。不过你有两个有趣的案子。倾斜体(~)是一些贝壳解释的一个特殊字符。我怀疑fstream并没有那样的解释。至于"./test.txt"的例子,我认为前面的评论是正确的--该文件已经创建--只是不符合您的预期。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28076633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档