王道短期班c++ day09

c++文件输入输出流

文件I/O:内存与外部文件之间的信息的传递

ifstream文件输入流/ofstream文件输出流/fstream文件输入输出流

文件模式:

in:做读操作

out:做写操作,清空流的内容,当文件不存在时,会直接创建新文件,并写如数据,当文件存在时,会清空文件流的内容

ate:文件指针偏移到文件流的末尾,配合读操作

app:写操作,只能在末尾追加写(不管文件游标在哪里,都只会在文件末尾写入)

trunc:打开文件时,清空流的内容

binary:以二进制方式打开文件

实例:

#include <iostream>
#include <string>
#include <fstream>
using std::cin;
using std::cout;
using std::endl;
using std::ifstream;
using std::string;

void test0()
{
    string filename("./student.cc");
    ifstream ifs(filename);
    if(!ifs){
        cout<<"ifstrem open file error"<<endl;
        return ;
    }
    //打印游标位置
    cout<<"current pos:"<<ifs.tellg()<<endl;
    
    //先拿到文件的长度,偏移到文件的末尾
    ifs.seekg(0,std::ios::end);//两个参数的含义
    //第一个参数时偏移量正值表示相后偏移,负值表示向
    //前偏移,第二个参数是基地址
    size_t length=ifs.tellg();
    cout<<"current pos:"<<length<<endl;

    char *pbuff = new char[length+1]();
    ifs.seekg(0,std::ios::beg);
    ifs.read(pbuff,length);
    string content(pbuff,length);
    cout<<"content:"<<content<<endl;

    ifs.close();

    delete [] pbuff;
}

int main()
{
    test0();
    return 0;
}

运行结果

out流

out模式会清空流

app模式

void test1()
  {
      ofstream ofs("test.txt",std::ios::app);
      if(!ofs){
          cout<<"ofs open file error"<<endl;
          return ;                                     
      } 
      ofs.seekp(0);//游标偏移到开头
  
      string line = "this is a line ";
      ofs<<line<<endl;//仍然会输出到末尾
      ofs.close();
 
  }

仍然添加到了末尾

每次获取一行文件

std::getline(ifs,line);

动态查看某一个文件中的最新内容

$tail -F 文件名

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
王道数据结构C是一种基于C语言的数据结构实现的教材或参考书籍。该教材根据数据结构的原理与应用,详细介绍了常见的数据结构和算法,并给出了它们的C语言实现。 在实现王道数据结构C时,我们可以通过以下几个步骤来进行: 1. 理解数据结构的原理和特性:首先,我们需要深入理解所学习的数据结构的基本原理和特性,包括线性表、链表、栈、队列、树、图等。熟悉它们的操作规则以及适用的场景。 2. 设计算法和数据结构:其次,针对每个数据结构,我们需要设计相应的算法和数据结构,以满足各种操作和需求。对于线性表,我们可以选择使用顺序表或链表来实现,对于树结构,可以选择二叉树或多叉树等等。 3. 编写C语言代码实现:一旦我们设计好了算法和数据结构,我们可以使用C语言来实现它们。根据数据结构的不同,可能会使用到C语言的指针、结构体、递归等特性来完成实现。 4. 测试和验证:完成代码实现后,我们需要编写一些测试用例来验证代码的正确性和性能。通过不同的测试用例,我们可以检查代码是否满足预期的需求,并且确认代码的运行效率。 5. 优化和修改:在测试过程中,我们可能会发现一些代码的问题或者可以进一步优化的地方。在保证代码正确性的前提下,我们可以对代码进行优化,提高其运行效率和性能。 通过上述步骤,我们可以实现王道数据结构C。通过编写和理解代码,我们可以更深入地学习和理解数据结构的原理和应用,提高自己的编程能力和解决问题的能力。同时,也可以帮助我们更好地理解和掌握C语言的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值