C++文件操作解析及使用(读、写文件 使用文件指针)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: C++文件操作解析及使用(读、写文件 使用文件指针)

进行文件I/O操作的时候要使用<fstream>头文件包含了很多标准库


1.下面是测试代码


创建文件并往文件中写入内容


当文件夹中没有下面的文件时会创建,并且会覆盖原文件重新写入


一般是创建在编译器的那个 文件夹里

#include<iostream>
#include<strstream>
#include<fstream>
#include<iomanip>
using namespace std;
int main() {
  /*
  ofstream ofile;
  cout << "create file1" << endl;
  ofile.open("test.txt");
  if (!ofile.fail())
  {
    ofile << "name1" << " ";
    ofile << "sex1" << " ";
    ofile << "age1" << " ";
    ofile.close();
    cout << "create file2" << endl;
    ofile.open("test2.txt");
    if (!ofile.fail()) {
      ofile << "name2" << " ";
      ofile << "sex2" << "";
      ofile << "age2" << "";
      ofile.close();
    }


2:下面的测试代码用了ifstream和ofstream对象实现读写文件的功能


用户手动输入5次数据 程序把它写入文件中 然后再打开

#include<iostream>
#include<strstream>
#include<fstream>
#include<iomanip>
using namespace std;
int main(){
char buf[128];
  ofstream ofile("test.txt");
  for (int i = 0; i < 5; i++) {
    memset(buf, 0, 128);//输入五次数据 程序把这五次数据写入文件中
    cin >> buf;
    ofile << buf;
  }
  ofile.close();//关闭
  ifstream ifile("test.txt");//然后再用ifstream打开
  while (!ifile.eof()) {
    char ch;
    ifile.get(ch);
    if (!ifile.eof())
      cout << ch;
  }
  cout << endl;
  ifile.close();
}

3:对二进制文件的读写 要用 ios::binary模式 读取需要read方法 写则需要write方法


#include<iostream>
#include<strstream>
#include<fstream>
#include<iomanip>
using namespace std;
int main(){
char buf[50];
  fstream file;
  file.open("test.dat", ios::binary | ios::out);
  for (int i = 0; i < 2; i++) {
    memset(buf, 0, 50);
    cin >> buf;
    file.write(buf, 50);//二进制写要用 write方法
    file << endl;
  }
  file.close();
  file.open("test.dat", ios::binary | ios::in);
  while (!file.eof())
  {
    memset(buf, 0, 50);
    file.read(buf, 50);//二进制读取要read方法
    if (file.tellg() > 0)
      cout << buf;
  }
  cout << endl;
  file.close();
  return 0;
}

4:文件的追加


在写入文件时 你可以不一次性写入全部数据 而是一部分一部分写 即不会覆盖前面的内容


测试代码如下


#include<iostream>
#include<fstream>
using namespace  std;
int main() {
  /*
  ofstream ofile("test.txt", ios::app);
  if (!ofile.fail()) {
    cout << "start write" << endl;
    ofile << "mary  ";
    ofile << "girl  ";
    ofile << "24  ";
  }
  else
    cout << "打不开啊";
}

5:eof成员函数可以用来判断文件结尾


在指定位置读写文件  用到了文件指针 可以输出你要求的位置的信息


1666417945537.jpg


测试代码如下

#include<iostream>
#include<fstream>
using namespace  std;
int main() {
ifstream ifile;
  char cfileselect[20];
  cout << "输入文件名:";
  cin >> cfileselect;
  ifile.open(cfileselect);
  if (!ifile)
  {
    cout << cfileselect << "打不开" << endl;
    return 0;
  }
  ifile.seekg(0, ios::end);
  int maxpos = ifile.tellg();
  int pos;
  cout << "输入查找的位置:";
  cin >> pos;
  if (pos > maxpos) {
    cout << "is over file lenght" << endl;
  }
  else
  {
    char ch;
    ifile.seekg(pos);
    ifile.get(ch);
    cout << ch << endl;
  }
  ifile.close();
  return 1;
}


相关文章
|
1月前
|
Java
Java“解析时到达文件末尾”解决
在Java编程中,“解析时到达文件末尾”通常指在读取或处理文件时提前遇到了文件结尾,导致程序无法继续读取所需数据。解决方法包括:确保文件路径正确,检查文件是否完整,使用正确的文件读取模式(如文本或二进制),以及确保读取位置正确。合理设置缓冲区大小和循环条件也能避免此类问题。
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
183 0
|
29天前
|
自然语言处理 数据处理 Python
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
260 60
|
9天前
|
自然语言处理 编译器 Linux
|
3天前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
14天前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
|
22天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
存储 搜索推荐 数据库
运用LangChain赋能企业规章制度制定:深入解析Retrieval-Augmented Generation(RAG)技术如何革新内部管理文件起草流程,实现高效合规与个性化定制的完美结合——实战指南与代码示例全面呈现
【10月更文挑战第3天】构建公司规章制度时,需融合业务实际与管理理论,制定合规且促发展的规则体系。尤其在数字化转型背景下,利用LangChain框架中的RAG技术,可提升规章制定效率与质量。通过Chroma向量数据库存储规章制度文本,并使用OpenAI Embeddings处理文本向量化,将现有文档转换后插入数据库。基于此,构建RAG生成器,根据输入问题检索信息并生成规章制度草案,加快更新速度并确保内容准确,灵活应对法律与业务变化,提高管理效率。此方法结合了先进的人工智能技术,展现了未来规章制度制定的新方向。
30 3
|
1月前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
19 0
Linux c/c++文件的基本操作
|
1月前
|
存储 机器学习/深度学习 数据可视化
解析exe文件
如何使用`objdump`工具解析exe文件,包括exe文件的组成、`objdump`的用法以及如何查看exe文件的节头信息和完整内容。
62 0
解析exe文件

推荐镜像

更多
下一篇
无影云桌面