20110327-8.4.2-清除文件流的状态clear()

本文介绍了一种在C++中使用文件流处理多个文件的方法。为了确保文件流可以在不同的文件间正确复用,每次处理完一个文件后需要调用clear()方法重置流状态。示例代码展示了如何遍历文件列表并逐个打开处理。

如果程序员需要重用文件流读写多个文件,必须在读另一个文件之前用clear清除该流的状态

#include "stdafx.h"
#include 
#include 
using std::vector;
using namespace std;
 
void process(string){
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    string s;
    vector files;
 
    ifstream input;
    vector::const_iterator it=files.begin();
    //for each file in the vector
    while(it!=files.end()){
        input.open(it->c_str());//open the file
        //if the file is ok,read and "process"the input
        if(!input)
            break;
        while(input>>s){
            process(s);
        }
        input.close();//close file when we're done with it
        input.clear();//reset state to ok
        ++it;//increment iterator to get next file
    
    return 0;
}
 


### 安装 MySQL 8.4.2 的方法 #### Linux 平台下的安装方式 在 Linux 系统上,可以通过解压二进制包的方式完成 MySQL 8.4.2 的安装。以下是具体操作: 1. **下载并解压文件** 首先从官方站点获取适用于当前系统的 MySQL 压缩包[^2],将其放置于目标目录下,并执行如下命令进行解压缩和重命名: ```bash tar -zxvf mysql-8.4.2-linux-glibc2.17-x86_64.tar.gz mv mysql-8.4.2-linux-glibc2.17-x86_64 /data/mysql/mysql8.4.2 ``` 2. **配置环境变量** 将 MySQL 的 `bin` 路径加入到全局环境变量中以便后续调用: ```bash export PATH=$PATH:/data/mysql/mysql8.4.2/bin source ~/.bashrc ``` 3. **初始化数据库实例** 使用 `mysqld --initialize-insecure` 或者带安全选项的 `--initialize` 来创建数据目录以及默认表结构: ```bash mysqld --initialize --user=mysql --basedir=/data/mysql/mysql8.4.2 --datadir=/data/mysql/mysql8.4.2/data ``` 4. **启动服务** 启动 MySQL 数据库服务器进程: ```bash /data/mysql/mysql8.4.2/support-files/mysql.server start ``` --- #### Windows 平台下的安装方式 对于 Windows 用户而言,可以采用图形化界面或者通过命令行来实现 MySQL 的部署。 1. **下载 MSI 文件** 访问官网链接 https://dev.mysql.com/downloads/mysql/8.0.html 下载适合的操作系统版本的安装程序。 2. **运行向导工具** 执行 `.msi` 文件后会弹出设置窗口,在这里可以选择开发模式还是生产模式;接着指定端口号、编码集等参数直至结束整个程即可。 3. **验证成功与否** 输入以下指令测试连接状况是否正常: ```cmd mysql -u root -p ``` 如果能够顺利进入交互终端,则说明一切准备就绪! --- #### Docker Compose 方式的快速搭建方案 利用容器技术简化本地调试工作量也是一个不错的选择。下面给出了一段基于 YAML 格式的描述文档用于定义名为 “mysql842”的镜像及其关联属性[^3]: ```yaml version: '3' services: mysql842: image: mysql:8.4.2 container_name: mysql842 restart: always privileged: true user: root command: ["--default-authentication-plugin=mysql_native_password"] environment: - TZ=Asia/Shanghai - MYSQL_ROOT_PASSWORD=root@111 # 自己设定实际使用的密码值 ports: - "3308:3306" volumes: - /opt/mysql842/conf/my.cnf:/etc/mysql/my.cnf - /opt/mysql842/data:/var/lib/mysql - /opt/mysql842/mysql-files:/var/lib/mysql-files - /opt/mysql842/logs:/var/log/mysql ``` 保存上述内容至某个路径比如 `/path/to/docker-compose.yml` ,之后只需键入单条语句便可一键拉取依赖资源并自动构建完毕: ```bash docker-compose up -d ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值