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"等称为预定义符号

相关推荐
蚁库16 小时前
Oracle 19c 文件系统安装实战教程:从规划到日常管理完整流程
数据库·oracle
枫叶丹416 小时前
Loop Engineering:从提示词到循环系统
数据库·redis·缓存·loop
zhanghaofaowhrql16 小时前
Spring Data JPA Repository 详解:从基础到高级用法
java·数据库·sql
编程(变成)小辣鸡17 小时前
如何防止接口被恶意刷?
java·后端·网络安全
大圣编程1 天前
Java 多维数组详解
java·开发语言
万法若空1 天前
【算法-查找】查找算法
java·数据结构·算法
阿成学长_Cain1 天前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
HZZD_HZZD1 天前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
OceanBase数据库官方博客1 天前
OceanBase AI 时代,数据库的变与不变(技术解析与实践)
数据库·人工智能·oceanbase
阿成学长_Cain1 天前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库