首页 > 其他分享 >close()关闭文件方法

close()关闭文件方法

时间:2023-11-11 20:38:44浏览次数:22  
标签:文件 调用 url outFile 关闭 close 方法

我们知道,调用 open() 方法打开文件,是文件流对象和文件之间建立关联的过程。那么,调用 close() 方法关闭已打开的文件,就可以理解为是切断文件流对象和文件之间的关联。注意,close() 方法的功能仅是切断文件流与文件之间的关联,该文件流并会被销毁,其后续还可用于关联其它的文件。

close()关闭文件方法_文件流

close() 方法的用法很简单,其语法格式如下:

void close( )

可以看到,该方法既不需要传递任何参数,也没有返回值。

举个例子:

#include <fstream>
    using namespace std;
    int main()
    {
        const char *url="http://c.biancheng.net/cplus/";
        ofstream outFile("url.txt", ios::out);
        //向 url.txt 文件中写入字符串
        outFile.write(url, 30);
        //关闭已打开的文件
        outFile.close();
        return 0;
    }

运行程序,在该程序同目录下会生成一个 url.txt 文件,其内部存储的数据为:

c.biancheng.net/cplus/

有些读者可能发现,即便上面程序中不调用 close() 方法,也能成功向 url.txt 文件中写入 url 字符串。这是因为,当文件流对象的生命周期结束时,会自行调用其析构函数,该函数内部在销毁对象之前,会先调用 close() 方法切断它与任何文件的关联,最后才销毁它。

强烈建议读者,使用 open() 方法打开的文件,一定要手动调用 close() 方法关闭,这样可以避免程序发生一些奇葩的错误!

close()关闭文件方法_#include_02

值得一提的是,《C++处理输入输出错误》一节中介绍了 4 种流状态,它们也同样适用于文件流。当文件流对象未关联任何文件时,调用 close() 方法会失败,其会为文件流设置 failbit 状态标志,该标志可以被 fail() 成员方法捕获。例如:

#include <iostream>
    #include <fstream>
    using namespace std;
    int main()
    {
        const char *url="http://c.biancheng.net/cplus/";
        ofstream outFile;
        outFile.close();
        if (outFile.fail()) {
            cout << "文件操作过程发生了错误!";
        }
        return 0;
    }

程序执行结果为:

文件操作过程发生了错误!

标签:文件,调用,url,outFile,关闭,close,方法
From: https://blog.51cto.com/u_15641375/8319390

相关文章

  • 如何在多台Linux系统主机上实现ssh免密访问——成公钥文件id_rsa.pub(数字签名RSA)
     假设共有三台Linux主机,为matser,slave1,slave2,现在要实现master主机可以ssh免密访问master主机自身以及slave1、slave2。 原理:主机 ssh-keygencat/root/.ssh/id_rsa.pub>/root/.ssh/authorized_keysssh-copy-idroot@slave1ssh-copy-idroot@slave2......
  • ansible的配置文件的解析
    一:/etc/ansible/ansible.cfg这个文件默认被分为8段[defaults]:通用配置项[inventory]:与主机清单相关的配置项[privilege_escalation]:特权升级相关的配置项[ssh_connection]:使用openssh连接相关的配置项[persistent_connection]:持久连接的配置项[acclelrate]:加速模式配置项[......
  • linux 将一个服务器上的文件或者文件夹复制到另一台服务器上
    使用scp命令 可以将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上一、复制文件1.1、将本地文件拷贝到远程语法命令格式:scp文件名用户名@计算机IP或者计算机名称:远程路径#示例如下:scp/root/install.*[email protected]:/usr/local/src1.2、从远程将文件拷回到......
  • 如何快速纠正VCF文件中REF和ALT的位置错误?
    目录需求描述尝试解决正确解决需求描述一个很简单的需求:一批水稻材料的芯片数据(位点少),想看看它们在3KRice中处于何种亚群和位置。就需要将芯片位点与3KRG位点整合后进行分析。已知3KRice位点可从SNP-Seek中下载:https://snp-seek.irri.org/_download.zul;jsessionid=F2B11FD2......
  • DVWA文件上传低级渗透流程(手把手教你)
    低级的文件上传环境没有进行过滤,所以可以直接上传一个php的木马文件,然后使用工具进行连接,进而获取到目标机器的图形化界面首先创建一个php的一句话木马文件保存为php格式,确定保存进入到上传文件的页面将方框内的相对路径复制粘贴到URL后面即可获得木马文件的绝对路径进入后若为空......
  • DVWA文件上传中级渗透流程(手把手教你)
    由于中级难度在前端页面进行了过滤,不允许php文件进行上传。所以我们需要在前端页面进行绕过,从而把文件上传到后端。首先在kali环境将kali用户切换到root管理员用户密码为kali打开burp抓包软件,burp软件能够在前端验证通过后,数据传到后端之前对数据包拦截,可以对数据包进行修改优化后......
  • python 执行脚本,并将输出打印到文件
    转载请注明出处:在使用python直接执行脚本时,执行的相关输出会打印到当前的控制台,如果想输出到指定的文件,可以采用以下几种方式:1.在启动时,使用>操作符,该操作符会将输出写入到指定文件,并覆盖原来文件内容如创建一个python脚本,内容如下:print("Thisisatest......
  • 不依赖于cn.hutool.extra.servlet.ServletUtil,使用Spring其他方式实现文件下载的功能
     在JDK17下,如下代码引用了cn.hutool.extra.servlet包下的ServletUtil工具类的ServletUtil.write方法,执行时报”Cannotresolvemethod'write(jakarta.servlet.http.HttpServletResponse,java.io.File)'“BUG,download方法通过cn.hutool.extra.servlet.ServletUtil的方法来实现......
  • php开发之文件读取、写入
    前言续之前的系列,这里php开发的文件操作的内容读取以及文本写入的部分文件读取代码的实现css代码本系列的php博客都是这个css,名字都是index.css/*css样式初始化*/*{font-family:'Poppins',sans-serif;margin:0;padding:0;box-sizing:border-box......
  • php开发之文件下载的实现
    前言php是网络安全学习里必不可少的一环,简单理解php的开发环节能更好的帮助我们去学习php以及其他语言的web漏洞原理正文在正常的开发中,文件下载的功能是必不可少,比如我们在论坛看到好看图片好听的歌时,将其下载下来时就涉及到文件的下载等等文件功能。但也会出现漏洞,或者一些bu......