• #include <fstream>


    1 fstream

    2 ifstream

    3 ofstream

    4 seekg

    5 seekp

    6 tellg

    7 tellp

    1 fstream

    打开输入输出文件流

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()
     5 {
     6     std::fstream fio("F:\1.txt", std::ios::in | std::ios::out);
     7 
     8     fio << "hello" << std::endl;//写入
     9     fio << "world" << std::endl;
    10     fio << "hello" << std::endl;
    11     fio << "china" << std::endl;
    12 
    13     fio.seekg(std::ios::beg);//文件指针回到文件开头,beg,begin
    14 
    15     for (int i = 0; i < 4; i++)//读取
    16     {
    17         char str[100] = { 0 };
    18         fio.getline(str, 100);
    19         std::cout << str << std::endl;
    20     }
    21 
    22     fio.close();//关闭文件
    23     
    24     system("pause");
    25 }

    2 ifstream

    打开输入文件流

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()
     5 {
     6     std::ifstream fin("F:\1.txt");//创建读取文件流
     7 
     8     char str[100] = { 0 };
     9 
    10     fin >> str;//读取
    11 
    12     fin.close();//关闭文件
    13 
    14     std::cout << str;
    15     
    16     system("pause");
    17 }

    3 ofstream

    打开输出文件流

    打开文件,按行写入

    std::endl换行

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()
     5 {
     6     std::ofstream fout;
     7 
     8     fout.open("F:\1.txt");//打开文件,如果没有文件,将会创建新的文件
     9 
    10     fout << "hello" << std::endl;//写入,std::endl换行
    11     fout << "china" << std::endl;
    12     fout << "hello" << std::endl;
    13     fout << "world" << std::endl;
    14 
    15     fout.close();//关闭文件
    16 
    17     system("pause");
    18 }

    std::ios::app

    打开文件以便在文件的尾部添加数据

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()
     5 {
     6     std::ofstream fout("F:\1.txt", std::ios::app);//打开输出文件流
     7 
     8     fout << "hello world hello china";//写入
     9 
    10     fout.close();//关闭文件
    11 
    12     system("pause");
    13 }

    复制文本

    ifstream负责读取,ofstream负责写入

    按照字节的方式读写二进制

    文件加密解密都需要字节的方式

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 //按照字节的方式读写二进制
     5 //文件加密解密都需要字节的方式
     6 
     7 void main()
     8 {
     9     std::ifstream fin("F:\1.txt", std::ios::binary);//需要复制的文件
    10     std::ofstream fout("F:\new.txt", std::ios::binary);//保存复制后的文件
    11 
    12     if (!fin || !fout)
    13     {
    14         std::cout << "文件打开失败" << std::endl;
    15         return;
    16     }
    17 
    18     std::cout << "文件复制开始" << std::endl;
    19     char ch = 0;
    20 
    21     while (fout && fin.get(ch))//引用的方式读取到一个字符
    22     {
    23         fout.put(ch);//写入一个字节
    24     }
    25 
    26     fin.close();//关闭文件
    27     fout.close();//关闭文件
    28 
    29     std::cout << "文件复制完成" << std::endl;
    30 
    31     system("pause");
    32 }

    4 seekg

    对输入流操作:seekg()

    fin.seekg(9, std::ios::beg);//从开始往后9个字符

    fin.seekg(-9, std::ios::end);//从尾部倒数9个字符

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()//二进制随机位置读取
     5 {
     6     double db[10] = { 1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.1 };
     7     
     8     std::ofstream fout("F:\1.txt", std::ios::binary);//写入文件
     9     fout.write((char *)db, 80);//写入以字节为单位,因此转换为char类型
    10     fout.close();
    11 
    12     double *p = new double[5];
    13 
    14     std::ifstream fin("F:\1.txt", std::ios::binary);//读取文件
    15 
    16     fin.seekg(-40, std::ios::end);//指针到达尾部前40个字节
    17 
    18     fin.read((char *)p, 40);
    19     fin.close();
    20 
    21     for (int i = 0; i < 5; i++)
    22     {
    23         std::cout << p[i] << std::endl;
    24     }
    25 
    26     system("pause");
    27 }

    5 seekp

    对输出流操作:seekp()

    seekp(9, std::ios::beg);//确定随机位置进行读写

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()
     5 {
     6     std::ofstream fout("F:\1.txt");//写入文件
     7     fout << "1234567890abcdefghijklmn";
     8     fout.close();//关闭文件
     9 
    10     std::ofstream Fout("F:\1.txt", std::ios::in | std::ios::out);//写入文件
    11     char str[] = "helloworld";
    12 
    13     Fout.seekp(9, std::ios::beg);//确定随机位置进行读写
    14 
    15     Fout << str;//输出到文件
    16     Fout.close();//关闭文件
    17 
    18     std::ifstream fin("F:\1.txt");//读取文件
    19     char ch;
    20 
    21     while (fin.get(ch))//打印
    22     {
    23         std::cout << ch;
    24     }
    25     fin.close();//关闭文件
    26 
    27     system("pause");
    28 }

    6 tellg

    7 tellp

    对输出流操作:tellp()

    long size = Fout.tellp();//当前位置距离begin有多少个字节,到尾部可以获取文件大小

     1 #include <iostream>
     2 #include <fstream>
     3 
     4 void main()
     5 {
     6     std::ofstream fout("F:\1.txt");//写入文件
     7     fout << "1234567890abcdefghijklmn";
     8     fout.close();//关闭文件
     9 
    10     std::ofstream Fout("F:\1.txt", std::ios::in | std::ios::out);//写入文件
    11     char str[] = "helloworld";
    12 
    13     Fout.seekp(9, std::ios::end);//确定随机位置进行读写
    14     long size = Fout.tellp();//当前位置距离begin有多少个字节,到尾部可以获取文件大小
    15 
    16     Fout << str;//输出到文件
    17     Fout.close();//关闭文件
    18 
    19     std::ifstream fin("F:\1.txt");//读取文件
    20     char ch;
    21 
    22     while (fin.get(ch))//打印
    23     {
    24         std::cout << ch;
    25     }
    26     fin.close();//关闭文件
    27 
    28     system("pause");
    29 }
  • 相关阅读:
    你知道Synchronized底层实现原理嘛
    一篇搞定Java集合类原理
    lsp都要会的内存模型
    Sql Server 查询优化
    使用Windows的mstsc远程桌面连接到Ubuntu图形界面(AWS上安装的Ubuntu系统)
    AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录
    安装mysql.zip文件教程(包含常见问题修复)
    DevExpress GridControl小结
    C#开发必会
    C# 错误集锦
  • 原文地址:https://www.cnblogs.com/denggelin/p/5675728.html
Copyright © 2020-2023  润新知