使用文件流操作文本文件(文件实训)

编写一个统计本月服装的销售情况的函数。

相关知识

文件流操作文件

C 还可以使用文件流的方式操作文件,使用文件流的方式操作文件需要包含头文件,代码如下:

#include <fstream>

头文件中定义了三个类:类 fstream、类 ifstream 和类 ofstream。

  1. 类 ifstream 实现文件的输入
  2. 类 ofstream 实现文件的输出
  3. 类 fstream 实现文件的输入输出

使用文件流操作文件依然可以分为三个步骤:打开文件读写文件关闭文件
打开文件
打开文件用于读时可以使用类 fstream 或者 ifstream 函数。

ifstream 函数
ifstream inFile("test.txt", ios::in);
  1. inFile 是声明的 ifstream 的一个对象(也可以叫变量,只是这个变量里面包含的东西较多,类似于结构变量),声明该对象时会自动执行一个特殊的函数(构造函数,学习面向对象部分的时候会了解)。
  2. test.txt和 ios::in 是传递给该函数的参数。test.txt是要打开的路径和文件名,ios::in 是文件打开的方式,表示打开文件用于输入。
  3. 执行该函数将会以读的方式打开当前目录下的文件test.txt。之后通过 inFile 调用一些函数就可以操作文件test.txt了。
fstream 函数

由于类 fstream 也可以打开文件用于输入,上面的语句也可以这样写:

fstream inFile("test.txt", ios::in);

类 fstream 的文件打开方式有:

打开方式 描述
ios::in 打开一个供读取的文件
ios::out 打开一个供写入的文件
ios::app 写入的所有数据将被追加到文件的末尾,此方式需要使用 ios::out
ios::ate 写入的数据将追加到文件的末尾,但也可写到其他地方,此方式不需要用 ios::out
ios::trunc 废弃当前文件内容
ios::nocreate 如果要打开的文件并不存在,那么以此参数调用 open 函数将无法进行
ios::noreplace 如果要打开的文件已存在,试图用 open 函数打开时将返回一个错误
ios::binary 以二进制的形式打开一个文件

其中适合于文件读的打开方式也可以用于类 ifstream ,适合于文件写的打开方式也可以用于 ofstream,ios::binary 两者都可以用。

读写文件

文件的读取
如果以文本的方式操作文件(没有属性 ios::binary ),则读文件的语法和用 cin 从键盘输入的语法很像。例如下面的语句可以从文件test.txt中读取一个整数和一个浮点数。

int n;
float f;
inFile >> n &g
### 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]。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【执珪】瑕瑜·夕环玦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值