C语言(四 文件操作、递归)

文件读写

我们用**fopen()**来新建一个文件或打开一个已有的文件.
函数原型为File *fopen(const char *filename , const char *mode)
filename是文件名,mode代表访问方式。

mode访问模式
r打开一个已有的文本文件,允许读取文件
w若无此文件,新建一个文件,从文件头开始写;若有此文件,截断文件为零长度,重新写入
a打开一个文本文件,以追加模式写入,若无此文件,新建一个文件
r+打开一个文本文件,允许读写文件
w+打开一个文本文件,允许读写文件,若没有此文件,新建一个文件
a+打开一个文本文件,允许读写文件,写文件时,只允许以追加模式写入

若访问二进制文件,mode后加上b就可以了

fclose(FILE *fl)

关闭文件成功返回0,关闭失败返回EOF。调用此函数,先清空缓存区数据,再关闭文件,再释放用于该文件的所用内存。

fputc(int ch,FILE *fl)

将字符ch的值写入指向fl的输出流中,若写入成功,返回ch的值,写入失败则返回EOF。

fputs(const *char ch , FILE *fl)

将字符串ch写入到指向fl的输出流中,若写入成功返回不为零,写入失败返回EOF。

fgetc(FILE *fl)

从写入文件的输入流中获取一个单个字符,返回值为读取到的字符,失败返回EOF

fgets(FILE *fl)

从输入流中获取一串字符直到遇到终止符或EOF,遇到空格也会停止,只返回读取到的字符。先读取一串字符除了最后的字符或空格,放至缓存区,在末尾加上null字符返回字符串。
引用头文件
两种方式:

#include <file>
#include "file"

一般我们用global.h来导入所有头文件。
还有许多预处理器命令:#define宏定义,#include导入源代码文件,#undef取消已定义的宏,#ifdef如果已定义,#ifndef若没有定义,#if,#else,#elif,#endif结束一个if-else块,#error若发生标准错误,产生标准错误信息,#pragma使用标准化方法,向编译器发布特殊的命令到编译器中
递归
函数自身调用本身成为递归。
求阶乘,经典的斐波那契数列都是用递归的思想来做的,但与while迭代相比,他占用了更多的栈空间,尾递归可以在一定程度上减少堆栈的浪费,尾递归就是函数的返回结果不是表达式的一部分的递归函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值