C中 memset enum malloc fputc fgetc fgets fread fwrite rewind指针回退

前言:回顾在学习C时不太熟悉的函数体

memset(puc,0,4) :

void *memset(void *ptr, int value, size_t num);

ptr:要填充的内存起始地址(此处是 puc);

value:填充的字节值(此处是 0 若是char 则全部为' \ 0 ',注意:memset 按单个字节填充,即 使传 int 也只会取低 8 位);

num:要填充的字节数(此处是 4)。

结构体中 #pragma pack(1) //设置默认对⻬数为1---"后无' ;'结尾"

enum State {

IDLE,

RUNNING,

PAUSED,

STOPPED

};

malloc(100)默认开辟100个字节大小的空间

fclose(pfile); // 关键!fclose( )会:

// 1. 刷新缓冲区(将缓冲数据写入内核)

// 2. 关闭文件描述符

// 3. 释放FILE结构体

在此代码进行完毕之后才可以打开目标文件进行查看

int fputc(int character,FILE* stream)

例子:

fputc('a',pfile);

int fgetc(FILE* stream)

例子:

int ch = fgetc(pfile);

printf("%c",ch);

char* fgets(char* str,int num,FILE* stream)

返回的是str的起始地址 代表将stream指向的文件中的内容转化为字符串存储

注意:num的值将自动补齐的'\0'也计算进去了 也就是说只能读取num-1个字符到str中。

例子:

fgets(arr,10,pfile);

fwrite : 写入数据

size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

⦁ ptr: 指向要写入数据的指针

⦁ size: 每个数据项的字节大小

⦁ count: 要写入的数据项数量

⦁ stream: 文件指针

⦁ 返回值: 成功写入的数据项数量

fwrite( buf , sizeof(int) , 4 , pf )

fread : 读取数据(顺序与写入时的顺序一致

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

⦁ ptr: 指向存储数据的内存指针

⦁ size: 每个数据项的字节大小

⦁ count: 要读取的数据项数量

⦁ stream: 文件指针

⦁ 返回值: 成功读取的数据项数量

fread( buf ,sizeof(int),4,pf );

rewind(stream* pfile );

//将指针返回到文件头

#define MAX 999

#define SQUARE(x) ((x)*(x))

int main( )

{

printf("file:%s line: %d time:%s\n",FILE ,LINE ,TIME );

printf("%d\n", MAX);

printf("%d", SQUARE(MAX));

return 0;

}

//"FILE"等称为预定义符号

相关推荐
ps酷教程3 小时前
Jackson 解决没有无参构造函数的反序列化问题
java
NiceCloud喜云3 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
ccddsdsdfsdf3 小时前
DBeaver怎么链接mongoDB
数据库·mongodb
_日拱一卒4 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
隔窗听雨眠4 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
丷丩4 小时前
Postgresql基础实践教程(十一)各种Join
数据库·postgresql·join
星夜夏空994 小时前
FreeRTOS学习(4)——内存映射
数据库·学习·mongodb
智慧物业老杨4 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝5 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
TheRouter5 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
数据库·人工智能·oracle