1.
rb:为输入打开一个二进制文件;
rb+ 指为读写打开一个二进制文件;
rb为只读,对于不需要进行更新的文件,可以防止用户的错误的写回操作,防止损毁原有数据。具有较高的安全性
文件使用方式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
对于文件使用方式有以下几点说明:
1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
2. 凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。
3. 用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
printf()
char *st="China\0Beijing";
printf("%s",st);
结果 China
gets(字符数组名);作用:从终端输入一个字符串到字符数组
#include
main()
{char str1[20];
gets(str1);//ges函数输入,以Enter结束。
puts(str1);
}
#include
main()
{char str2[20];
scanf("%s",str2);//"%s"输入,以空格结束。
puts(str2);
}
eg:输入:how are you?
分析可得:若要处理的字符串包含空格字符,那么必须用gets函数获取这个字符串!
math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有: 1、 三角函数 double sin(double);正弦 double cos(double);余弦 double tan(double);正切 2 、反三角函数 double asin (double); 结果介于[-PI/2,PI/2] double acos (double); 结果介于[0,PI] double atan (double); 反正切(主值),结果介于[-PI/2,PI/2] double atan2 (double,double); 反正切(整圆值),结果介于[-PI,PI] 3 、双曲三角函数 double sinh (double); double cosh (double); double tanh (double); 4 、指数与对数 double frexp(double value,int *exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0.5~1.0范围或者0。 double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp double modf(double value,double *iptr);拆分value值,返回它的小数部分,iptr指向整数部分。 double log (double); 以e为底的对数 double log10 (double);以10为底的对数 double pow(double x,double y);计算以x为底数的y次幂 float powf(float x,float y); 功能与pow一致,只是输入与输出皆为浮点数 double exp (double);求取自然数e的幂 double sqrt (double);开平方 5 、取整 double ceil (double); 取上整,返回不比x小的最小整数 double floor (double); 取下整,返回不比x大的最大整数,即高斯函数[x] 6 、绝对值 int abs(int i); 求整型的绝对值 double fabs (double);求实型的绝对值 double cabs(struct complex znum);求复数的绝对值 7 、标准化浮点数 double frexp (double f,int *p); 标准化浮点数,f = x * 2^p,已知f求x,p (x介于[0.5,1]) double ldexp (double x,int p); 与frexp相反,已知x,p求f 8 、取整与取余 double modf (double,double*); 将参数的整数部分通过指针回传,返回小数部分 double fmod (double,double); 返回两参数相除的余数 9 、其他 double hypot(double x,double y);已知直角三角形两个直角边长度,求斜边长度 double ldexp(double x,int exponent);计算x*(2的exponent次幂) double poly(double x,int degree,double coeffs []);计算多项式 int matherr(struct exception *e);数学错误计算处理程序 注意事项没有现成的cot三角函数,可以使用tan(PI/2-x)来实现 double atan2(double y,double x);取值范围在(PI,PI)之间;这是一个不太常见的函数,主要用来返回y/x的反正切值。 强调一点,1-3类 传参都是针对以弧度表示的数值,非角度表示的数值。 对于一般的对数求解,考虑利用数学上的对数转换来实现。 两个函数比较容易混淆,介绍一种方法,ceil与floor首字母分别是c与f,取值在c与f之间,所以对于ceil函数取最小整数,对于floor函数取最大整数。 关于fmod:考虑到%只适用与整型数据,这里提出一个专门针对实型数据的取余运算的函数。 int rand(void) 用这函数的时候记得要给随机种子哦,要不得出的不是真正的随机数.产生随机种子可以用srand((unsigned int)time(NULL));这就是由时间产生的随机种子了。