c++:C++用fstream读写文件

fstream介绍

(1)fstream是C++标准库中面向对象库的一个,用于操作流式文件

(2)fstream本质上是一个class,提供file操作的一众方法

可以直接查看

c 复制代码
man --version
man 2.10.2

在线查看:
https://cplusplus.com/reference/#google_vignette

https://zh.cppreference.com/w/首页

需要添加头文件:

c 复制代码
#include <fstream>
#include <cstring> // 用于strlen函数
c 复制代码
// 打开文件进行读写和追加
  fstream file;
  file.open("example.txt", ios::in | ios::out | ios::app);

  // 检查文件是否成功打开
  if (!file.is_open()) {
    cerr << "Unable to open file example.txt" << endl;
    return 1;  // 返回错误代码
  }

  // 写入文件内容
  file << "Appending some text to the file." << endl;

  // 将文件指针移动到文件开头以进行读取
  file.seekg(0);

  // 读取文件内容并输出
  string line;
  while (getline(file, line)) {
    cout << line << endl;
  }

  // 关闭文件
  file.close();
  return 0;

open:

c 复制代码
  // 打开文件进行读写和追加
  fstream file;
  file.open("example.txt", ios::in | ios::out | ios::app);

  // 检查文件是否成功打开
  if (!file.is_open()) {
    cerr << "Unable to open file example.txt" << endl;
    return 1;  // 返回错误代码
  }

  // 写入文件内容
  file << "Appending some text to the file." << endl;
  const char* str = "Hello, World!";
  file.write(str, strlen(str));
  // 使用 write 写入 std::string 对象
  string str1 = "Hello, C++";
  file.write(str1.c_str(), str1.size());
  file << endl;  // 写入换行符以区分不同写入操作
  // 将文件指针移动到文件开头以进行读取
  file.seekg(0);
#if 0
  // 读取文件内容并输出
  string line;
  while (getline(file, line)) {
    cout << line << endl;
  }
#else
  cout << "======================" << endl;
  // 获取文件大小
  file.seekg(0, ios::end);
  streamsize size = file.tellg();
  file.seekg(0, ios::beg);

  // 创建缓冲区并读取文件内容
  char* buffer = new char[size + 1];
  file.read(buffer, size);
  buffer[size] = '\0';  // 添加终止符

  // 输出逐行读取的内容
  char* line1 = strtok(buffer, "\n");
  while (line1 != nullptr) {
    cout << line1 << endl;
    line1 = strtok(nullptr, "\n");//用于指定分割字符串的分隔符集合
  }
  // 清理并关闭文件
  delete[] buffer;
#endif
  // 关闭文件
  file.close();
  return 0;

总结

可以使用fstream读写文件

学习记录,侵权联系删除。

来源:朱老师物联网大课堂

相关推荐
华子w9089258596 分钟前
60页论文参考:基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现
java·开发语言·vue.js·论文阅读
engchina8 分钟前
解析 pdfminer layout.py LAParams类及其应用实例
开发语言·python·pdfminer
不死鸟.亚历山大.狼崽子11 分钟前
python库(6):Pygments库
linux·开发语言·python
Thunter_12 分钟前
QT中常用英语单词
开发语言·qt
2301_7818335212 分钟前
深入探索Python库的奇妙世界:赋能编程的无限可能
开发语言·python
溪渣渣_梁世华18 分钟前
Qt 进程间通信(一)——QSharedMemory共享内存
c++·qt·进程间通信
java66666888818 分钟前
使用Java构建一个高性能的消息队列系统
java·开发语言·linq
lsx20240619 分钟前
C++ 日期 & 时间
开发语言
程序员爱德华22 分钟前
C++(week10):C++基础: 第二章 类与对象
c++·类和对象
小李很执着25 分钟前
【掌握C++ string 类】——【高效字符串操作】的【现代编程艺术】
开发语言·c++·后端·学习