当前位置: 首页 > news >正文

C语言基础知识--文件读写(一)

// 内存分配
// 内核空间:用户代码不能读写
// 栈:局部变量,形式参数
// 内存映射段:文件映射、动态库、匿名映射
// 堆:主动申请内存,都在堆区
// 数据段(静态区):全局变量、静态变量、静态局部变量
// 代码段:可执行代码/只读常量// 文件操作
// 为什么使用文件 ?
// 1. 存储数据;数据的相对持久化的保存,文件是存在硬盘上的
// 2、程序文件:源程序文件.c、目标文件.obj、可执行文件.exe
//   数据文件: 文件的内容不一定都是程序,可能是程序运行时读取的数据,或者输出到文件中的内容。
// 3、文件的唯一标识 ,文件名 :文件路径 +  文件名 + 文件后缀
// 4、根据数据的组织形式,文本文件和二进制文件
// 5、数据在内存中1️以二进制的形式存储,如果不加转换放到外存的文件中 ,就是二进制文件
// 6、如果在存储前,添加转换,那么就是文本文件
// 7、wb 二进制写的方式// int main() {
//    int a = 10;
//    FILE *fp = fopen("binary.txt", "wb");
//    fwrite(&a, sizeof(int), 1, fp);
//    fclose(fp);
//    fp = NULL;
//    return 0;
// }// 8、文件的操作和关闭
// 1、流: 文件的输入输出,需要输出到不同的外部设备,抽象出流的概念
// 2、打开读写、关闭
// 3、标准流:
// stdin : 标准输入
// stdout : 标准输出
// stderr  : 错误输出
// 三个流的类型是 FILE * ,称为文件指针// 4、文件指针: FILE *
// 缓冲系统中 ,关键的概念是 文件类型指针 ,简称 “文件指针”
// 用来保存文件的信息 ,系统创建一个文件信息区域结构体,由系统命名FILE
// 文件的打开和关闭
// fopen 函数
// fopen (const char *filename, const char *mode)
// 文件的打开方式:
// r 读文件:文件不存在则创建,存在则打开
// w 写文件:文件不存在则创建,存在则清空
// a 追加文件:文件不存在则创建,存在则追加
// rb 二进制读文件:文件不存在则创建,存在则打开
// wb 二进制写文件: 文件不存在则创建,存在则清空
// ab 二进制追加文件:文件不存在则创建,存在则追加
// r+// int main() {
//  // 打开文件
//    FILE *fp = fopen ("readtest.txt", "w");
//  // 打开文件成功返回有效指针,如果失败null
//  // // 如果不在当前路径下要写绝对路径: /Users/l/Desktop/code/readtest.txt
//  // . 表示当前路径 .. 表示上一级路径: .\\..\\readtest.txt
//    if (fp != NULL) {
//      // 写入文件
//      // 生成随机时间写入文件
//      srand ((unsigned int)time (NULL));
//       int time = rand ();
//       fprintf (fp, "time = AA%d\n", time);
//       // fprintf (fp, "hello world\n");
//       fclose (fp);
//    }
//   else {
//     perror ("fopen");
//     return 1;
//   }
//   // 关闭文件
//   fclose (fp);
//   fp  = NULL;
// }
// 读取文件// fgetc :读字符
// fputc :写字符
// fgets :读字符串
// fputs :写字符串
// fscanf :格式化读
// fprintf :格式化写// 顺序读写
// fgetc: 读取正常返回读取到的字符的ascll值,返回EOF表示文件结束
// fputc: 写入正常返回写入的字符的ascll值,返回EOF表示文件结束// int main () {
//  // 打开文件
//    FILE *fp = fopen ("test.txt", "r");
//    if (fp == NULL) {
//     perror ("fopen");
//    }
//  // 读文件
//    int i = 0;
//    for (i = 0; i < 10; i++) {
//       int ch = fgetc (fp);
//       if (ch == EOF) {
//          break;
//       }
//       printf ("%c\n", ch);
//    }
//  // 关闭文件
//    fclose (fp);
//    fp = NULL;
//    return 0;
// }// int main() {
//    int ch = fgetc (stdin); // 标准输入,从键盘读入字符
//    fputc (ch, stdout); // 标准输出
//    return 0;
// }
//
http://www.lryc.cn/news/587201.html

相关文章:

  • 移动端设备本地部署大语言模型(LLM)
  • React强大且灵活hooks库——ahooks入门实践之状态管理类hook(state)详解
  • [Plecs基础知识系列]基于Plecs的半导体热仿真方法(实战篇)_1.建立电路模型
  • Linux修炼:开发工具
  • 《每日AI-人工智能-编程日报》--2025年7月12日
  • 使用Starrocks替换Clickhouse的理由
  • LeetCode经典题解:21、合并两个有序链表
  • Mybatis自动创建数据库表,并根据创建的表自动生成Mvc框架基础代码
  • CentOS系统下前后端项目部署攻略
  • Extended Nested Arrays for Consecutive Virtual Aperture Enhancement
  • C++——static成员
  • win10下的wsl2扩充空间
  • CUDA 编程笔记:使用 CUDA 加速矩阵乘法
  • 代码随想录算法训练营第三十二天|动态规划理论基础、LeetCode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 终极剖析HashMap:数据结构、哈希冲突与解决方案全解
  • 热点代码探测确定何时JITTest01
  • 深度学习图像分类数据集—水质量识别分类
  • 【计算机网络架构】环型架构简介
  • js入门01
  • Jvm优化高手-笔记
  • DTU数据处理
  • [spring6: @EnableSpringConfigured]-编译时织入
  • AWS云安全详解:账号管理与最佳安全实践
  • AI Agent开发学习系列 - langchain之Agent智能体(2):几种不同的内置agent类型
  • IPC框架
  • ID生成策略
  • ​[Dify]-基础入门7- 探索 Dify 知识库:打造专属知识大脑
  • 一些git命令
  • 系统设计 --- 双重检查锁定
  • 前端基础知识TypeScript 系列 - 04(TypeScript 中接口的理解)