C语言文件操作

	C++语言是C语言的超集,是在C语言的基础上增加了面向对象的特性而创造出来的,最初被命名为带类的C。所以C++语言中包含了C语言的思想,如:C++语言中文件操作的原理与步骤与C语言基本相同,请对比C语言中的文件操作,来学习和理解C++中的文件操作。以下是C语言文件操作的Blog连接:

C++语言文件操作

	C++语言中标准库fstream,提供了有关文件操作所需的条件。
  • 与文件操作相关的数据类型

    • ifstream

      • 输入文件流,用于从文件读取信息
      • 使用其对象打开文件时,默认为:ios::in
    • ostream
      • 输出文件流,用于创建文件(若关联的文件不存在)并向文件写入信息
      • 使用其对象打开文件时,默认为:ios::out
    • fstream
      • 文件流,具备ifstream与ostream的功能
      • 使用其对象打开文件时,默认为:ios::in | ios::out
  • 文件的打开模式

    标志 含义
    ios::app 追加模式,将所有写入的内容追加到文件末尾
    ios::ate 文件打开后定位到文件末尾
    ios::in 打开文件用于读取
    ios::out 打开文件用于写入
    ios::trunc 若文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为0(文件内容会被清空)
  • 文件操作的步骤

    • 打开文件,可以使用以下函数打开文件:

      // 使用char类型字符串指定文件名和位置
      void open(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out)
      // 使用string类型字符串指定文件名和位置
      void open(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out)
    • 操作文件

      • 读取文件

        // 使用流提取运算符 >>,读取到空格时会结束
        // 使用 get() 函数
        basic_istream& get(char_type* __s, streamsize __n);
        // 使用 getline() 函数
        basic_istream& getline(char_type* __s, streamsize __n);
        // 使用 read()
        basic_istream& read (char_type* __s, streamsize __n);
        // 使用 readsome() 函数, 注意函数的返回值类型不是 basic_istream&
        streamsize readsome(char_type* __s, streamsize __n);
      • 写入文件

        // 使用流插入运算服务 <<
        // 使用 put() 函数,一次只能写入一个字符
        basic_ostream& put(char_type __c);
        // 使用 write() 函数
        basic_ostream& write(const char_type* __s, streamsize __n);
    • 关闭文件

      // 使用 close() 函数
      void close();

文件位置重定位

  • 查找方向

    标志 含义
    ios::beg 默认的方向,从流的开头开始定位
    ios::cur 从流的当前位置开始定位
    ios::end 从流的末尾开始定位
  • 文件位置重定位相关的函数

    • 输入流相关

      // __pos 指定位置,查找方向为默认方向:从流的开头开始向后定位。即:定位到流的第 __pos 个字节
      basic_istream& seekg(pos_type __pos);
      // __off 指定偏移量,__dir 指定查找方向。即:按 __dir 指定的查找方向偏移 __off 字节
      basic_istream& seekg(off_type __off, ios_base::seekdir __dir);
    • 输出流相关

      // __pos 指定位置,查找方向为默认方向:从流的开头开始向后定位。即:定位到流的第 __pos 个字节
      basic_ostream& seekp(pos_type __pos);
      // __off 指定偏移量,__dir 指定查找方向。即:按 __dir 指定的查找方向偏移 __off 字节
      basic_ostream& seekp(off_type __off, ios_base::seekdir __dir);

示例

  • 读取文件

    void readFromFile() {
    // 创建一个字符数组,用于暂存用户输入的数据
    char data[50];
    // 打开文件(以读模式打开文件)
    ifstream inputFile;
    inputFile.open("/Users/mac/Desktop/HelloWorld.txt");
    // 将文件的读指针从开始位置向后移动 6 个字节,即:从文件的第 6 个字节开始读取文件的内容
    inputFile.seekg(6, ios::beg);
    // 读取文件的内容
    cout << "Reading from the file" << endl;
    // 使用 read()函数读取文件内容到 data 中
    inputFile.read(data, 50);
    cout << data << endl;
    // 关闭打开的文件
    inputFile.close();
    }
  • 写入文件

    void writeToFile() {
    // 创建一个字符数组,用于暂存从文件读取的数据
    char data[50];
    // 打开文件(以写模式打开文件)
    ofstream outputFile;
    outputFile.open("/Users/mac/Desktop/HelloWorld.txt");
    // 输入要写入文件的内容
    cout << "Writing to the file" << endl;
    cout << "Input a message:" << endl;
    cin.getline(data, 50);
    // 使用 write() 函数,将data数据写入到文件中
    outputFile.write(data, 50);
    // 关闭打开的文件
    outputFile.close();
    }
  • main函数

    int main(int argc, const char * argv[]) {
    // 写入文件
    writeToFile();
    // 读取文件
    readFromFile();
    return 0;
    }
  • 运行结果如图

C++语言-06-文件操作的更多相关文章

  1. C语言之文件操作08——总结

    C程序的文件操作共涵盖7个例题,包括格式打印,文件读取,条件查找,矩阵的文件操作,数据格式输入及调用计算等内容. 文件操作使得程序有更强的拓展性,使其能够单独保存数据.这为程序的调试和优化打下了坚实的 ...

  2. C语言程序设计--文件操作

    前言 这里尝试与Python对别的方法来学习C语言的文件操作,毕竟我是Pythoner. 文件打开与关闭 Python #因为是和C语言比对,所以不使用with filename = "/e ...

  3. C语言之文件操作

    C语言之文件操作 在本节我们将会讲解有关文件的读写操作: 纲要: 一些需要掌握的知识点 文件名 文件类型 数据流 文件缓冲区 文件指针 与文件操作相关的一些函数 文件的打开及关闭 文件的顺序读写 文件 ...

  4. c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释_

    1. 文件和流的关系 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中.当打开文件时,就建立了和文件 ...

  5. c语言,文件操作总结

    C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来 ...

  6. C语言的文件操作

    在操作系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也被看成一个文件.对于这些文件的操作,等于是对普通文件的操作.例如,通常把显示器称为标准输出文件,printf就是想这个文件输出,把键盘 ...

  7. C#语言-07.文件操作

    a. 文件操作:适用于相对简单的数据保存 i. 读写文件的步骤: . 创建文件流 . 创建读写器 . 读写文件 . 关闭读写器 . 关闭文件流 ii. FileStream(文件流),它主要用于读写文 ...

  8. C语言之文件操作06——写数据到文本文件遇0停止

    //文件 /* =============================================================== 题目:输入10个篮球运动员的身高数据(cm)保存至D盘文 ...

  9. Linux下C语言的文件操作

    代码: #include <stdio.h> #include <string.h> #include <fcntl.h> /*************基本的函数A ...

  10. 超赞的 Go 语言 INI 文件操作

    灵活的数据源 不光光可以从文件读取配置,还支持 []byte 类型的纯数据读取和基于 io.ReadCloser 的流式读取. 多种格式兼容 各种文件种类的广泛支持,包括但不限于 my.cnf..gi ...

随机推荐

  1. [Offer收割]编程练习赛3 - 题目3 : 智力竞赛

    智力竞赛 Problem's Link ---------------------------------------------------------------------------- Mea ...

  2. 【原创】Kakfa network包源代码分析

    kafka.network包主要为kafka提供网络服务,通常不包含具体的逻辑,都是一些最基本的网络服务组件.其中比较重要的是Receive.Send和Handler.Receive和Send封装了底 ...

  3. 了解WP的传感器

    之前看到老大的一个QQ签名,说想写一个WP的程序,可是后来,后来就没有后来了.我去年打算学一下WP程序开发的,一年了也无任何进展,我可不想后来,后来就没有后来.于是抽时间来接触一下.虽然都是用CShs ...

  4. Hack语言特性之类型化

    Hack最基础的特性就是类型标注.PHP5已经开始支持对象的类型化,PHP7也提供了标量类型化声明.Hack提供了全面的类型标注支持,与其typecher配合使用,还可以实现快速.前置静态类型验证. ...

  5. 11.20 CSS定位智博星网页制作

    <html xmlns="http://www.w3.org/1999/xhtml">   <head>   <meta http-equiv=&qu ...

  6. sublime text 开发常用插件

    一.emmet插件 (HTML/CSS代码快速编写插件) 安装步骤:打开Sublime菜单栏>首选项>Package Control> 输入>Package Control: ...

  7. Spring web应用最大的败笔

    第一篇 介绍下IOC DI Spring主要是业务层框架,现在已经发展成为一个完整JavaEE开发框架,它的主要特点是IoC DI和AOP等概念的融合,强项在面向切面AOP.推出之初因为Ioc/AOP ...

  8. (学习笔记)HTML的<link>标签

    在HTML中<link>标签用于定义文档与外部资源的关系. <link>标签只存在于head部分. <head> <link rel="styles ...

  9. redis主从 以及认证配置

    以前用redis用的很多,各种数据类型用的飞起,算是用得很溜了.不过那都是封装好的方法,自己直接调用.以前的公司比较规范,开发只是开发,很少去做跟运维相关的事情. 换了一份工作,不过这边项目刚开始起步 ...

  10. 「Unity」与iOS、Android平台的整合:2、导出的Android-Eclipse工程

    谢谢关注~由于博客园的写字有些蛋疼,已经搬迁到简书了 这是本篇文章的最新连接