c语言基础知识

c基础语言学习网址

学习地址1

c语言基本函数整理

1、发送格式化输出到 str 所指向的字符串

int sprintf(char *str, const char *format, ...)
参数:
		str 	指向字符串的指针
		fomat	一部分为写入到str的文本,一部分是format的格式标签参数值
返回值:
		成功		返回写入的字符数
		失败		返回负数
	

2、getchar() & putchar() 函数

int getchar(void)
返回值:
			该函数获取从键盘输入一个字符,且它一次只能保存一个字符并返回一个整数
int putchar(int c)
参数:
			从键盘获取字符的getchar()的值,并且输出到屏幕
返回值:

3、fopen函数

FILE *fid = fopen("文件路径""权限")
返回值:成功 返回一个将这些文件打开的信息保存到FILE结构体指针
	   失败  返回null
文件权限:首先文件分为文本文件和二进制文件,这些都要在文件权限中体现出来加以区别
"r" 以“只读”方式打开文件。只允许读取,不允许写入。文件必须存在,否则打开失败。
"w" 以“写入”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。
"a" 以“追加”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。
"r+" 以“读写”方式打开文件。既可以读取也可以写入,也就是随意更新文件。文件必须存在,否则打开失败。
"w+" 以“写入/更新”方式打开文件,相当于w和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。
"a+" 以“追加/更新”方式打开文件,相当于a和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。
由于有文本文件和二进制文件两种,所以分别用“t”(代表文本文件,可以省略不写)和“b”(如果是二进制文件的操作必须加b)来区分
如:
将读写方式放在读写权限的末尾:"rb""wt""ab""r+b""w+t""a+t"
将读写方式放在读写权限的中间:"rb+""wt+""ab+"
总结:
1、也就是说 带有r的权限只能在有文件的前提下做读取或者读取与写入,不能在没有文件的前提下创建新的文件。
2、带有w 的权限都可以在没有文件的前提下创建新的文件,如果有文件则删除里面所有内容,写入新的内容(旧的数据与新数据不能共存),但是“w”只能写入不能读取,而“w+”可以读取。
3、带有a 的权限都可以在有文件前提下直接在文件内容的末尾追加新的内容(保留原来的数据),如果没有文件前提下都可以新建文件,但是“a”只有写入权限,而“a+”可以写入也可以读取。

fclose()函数
关闭文件函数,文件使用完毕之后,必须关闭文件以释放相关资源,防止数据丢失

int fclose(FILE *fid);

fseek()函数
定位文件流的指针函数

int fseek(FILE *fid, long offset, int fromwhere);
stream: 文件指针
offset: fromwhere 的偏移量,正数为在fromwhere的位置向前偏移offset,负数为向后偏移offset。
fromwhere:表示文件从哪里开始偏移
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾

ftell()函数
获取文件指针目前的位置,即从文件开头到目前文件位置的长度(字节为单位),因此这个函数与fseek可以读取文件的字节大小。

int  ftell (FILE *fid);

fread()函数

int  fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *fid   ) 
buffer:缓存数据的内存指针,数组,或者动态开辟的内存
size:每次读取的文件的大小(每次读取多少个字节)
count:需要读取多少次(size * count = 读取的总共字节数)
fid :文件指针

rewind()函数

void rewind(FILE *stream)
重新将fid的指针位置定位到文件的开头

静态局部变量实际上是全局变量 两者变量的地址在一个区间 但是作用域只在局部函数有效。

自我问题思考

1、c语言静态分配与动态分配有什么优缺点?
2、void类型指针如何理解或者函数如何理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值