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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 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;
}


相关文章
|
17天前
|
算法 C语言
C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项
本文深入讲解了C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项,通过实例演示了文件操作的基本流程,帮助读者掌握这一重要技能,提升程序开发能力。
51 3
|
1月前
|
自然语言处理 编译器 Linux
|
21天前
|
设计模式 安全 数据库连接
【C++11】包装器:深入解析与实现技巧
本文深入探讨了C++中包装器的定义、实现方式及其应用。包装器通过封装底层细节,提供更简洁、易用的接口,常用于资源管理、接口封装和类型安全。文章详细介绍了使用RAII、智能指针、模板等技术实现包装器的方法,并通过多个案例分析展示了其在实际开发中的应用。最后,讨论了性能优化策略,帮助开发者编写高效、可靠的C++代码。
30 2
|
1月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
74 4
|
1月前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
|
2月前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
2月前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
21 0
Linux c/c++文件的基本操作
|
2月前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
57 0
|
2月前
|
Linux C++
Linux c/c++文件移动
这篇文章介绍了在Linux环境下,使用C/C++语言通过命令方式和文件操作方式实现文件移动的方法。
81 0
|
19天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
29 2

推荐镜像

更多