【文件实训】使用文件流操作二进制文件

文件流操作二进制文件的读写
写二进制文件
以文件流的方式操作文件一样可以支持二进制方式的块读写。

例如:

ofstream cl(“c.dat”, ios::binary);
int n = 10;
cl.write((char*)&t,sizeof(t));
第一行程序申明了 ofstream 的对象 cl,并以二进制方式( ios::binary )打开文件c.dat(如果文件c.dat不存在,会先创建)用于输出( fstream 的对象的对象都是用于文件输出)。

第三行则将整数 t 以块写入的方式写入文件c.dat。函数 write 的第一个参数是要写入文件的数据首地址,必须是char*类型,要写入的数据是 t,所以该实参为&t,并进行了类型转换。第二个参数是要写入文件的字节数,t 整型变量,所占字节数可以用sizeof(t)求得。

读二进制文件
二进制的块读出方式和块写入方式类似。

例如下面的程序可以将写到文件c.dat中的整数读出:

ifstream fl(“c.dat”, ios::binary);
int n;
fl.read((char*)&n,sizeof(n));
第一行程序申明 ifstream 的对象 fl ,并以二进制方式打开文件c.dat用于读。

第三行从文件中读出一个整数。read 函数的第一个参数是读出的数据要放到内存中的位置,类型为char*。读出的整数要赋值给 n,所以该实参为&n,并进行了类型转换。第二个参数是读出的字节数,一个整数的字节数可以用sizeof(n)求得。

int getNumber(ifstream &ifile, char *label)
{
    struct clothing t;
    while(ifile.read((char *)&t, sizeof(struct clothing)))
    {
      if(string(t.label) == label)return t.numberRemaining;
    }

    return 0;
}
### Python 文件读写操作 Python 提供了丰富的内置功能来处理文件的读取和写入操作。以下是于如何使用 Python 进行文本文件读写的详细介绍。 #### 文本文件的打开模式 在 Python 中,可以使用 `open()` 函数来创建一个文件对象,并指定不同的模式来进行文件操作。常见的模式有: - `'r'`:只读模式,默认模式。 - `'w'`:写入模式,如果文件已存在则覆盖原文件内容;如果不存在,则会新建文件。 - `'a'`:追加模式,在已有文件末尾添加新内容而不影响原有内容。 - `'b'`:二进制模式,用于非文本文件(如图片、音频等)。 - `'+'`:更新模式,允许同时进行读写操作[^1]。 #### 示例代码 以下是一个简单的示例程序,展示如何通过 Python 实现文件的读取与写入: ```python # 写入文件 with open('example.txt', 'w') as file: file.write("这是一个测试。\n") file.write("这是第二行内容。\n") # 读取整个文件的内容 with open('example.txt', 'r') as file: content = file.read() print(content) # 按行读取文件 with open('example.txt', 'r') as file: lines = file.readlines() # 返回每一行为列表中的元素 for line in lines: print(line.strip()) # 去除每行结尾的换行符 # 追加内容到文件 with open('example.txt', 'a') as file: file.write("这是新增的一行内容。\n") ``` 上述代码展示了基本的文件操作流程,包括写入、按行读取以及追加内容的功能。 #### 于变量传递的影响 需要注意的是,当函数接收可变对象作为参数时,其内部修改会影响外部的对象状态;而如果是不可变对象(如整数),即使在函数内对其重新赋值也不会改变原始变量的状态[^2]。 #### 数据库连接注意事项 对于涉及数据库的应用场景,建议合理选用合适的 MySQL 驱动模块以优化性能表现,避免因配置不当引发效率低下等问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值