C语言常用语句总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言常用语句总结
一:常用函数
1、putchar函数:
putchar函数(字符输出函数):向终端输出一个字符。
一般形式为:
putchar(c)// 输出字符变量c的值。
== printf(“%c”,c)
2、getchar函数
getchar函数(字符输入函数):从终端输入一个字符。
getchar函数没有参数,一般形式为:
c=getchar() //将输入的字符赋值给c
3、printf函数
printf函数(格式输入函数):向终端输出若干个任意类型的数据。
printf的一般格式为:
printf(“格式控制”,对应变量名)// 例如:printf(”%d,%c\n”,i,c)
4、scanf函数
scanf(格式输入函数):从终端输入若干个任意类型的数据。
一般形式为:
scanf(“格式控制”,&变量名)
二:基本语句(除if语句外,switch和三种循环语句都需要{大括号}的支持)
(1)条件语句if和switch
1、if语句:
*********************
if(表达式)
语句1;
语句2;// if下的各独立语句用分号分隔。
*********************
if(表达式)
语句1;
else
语句2;
*********************
if(表达式1)
else if(表达式2) // 每一个if与他最近的一个else对应。
语句2;
....
else if(表达式n)
语句n;
else
语句n+1;
*********************
If语句的嵌套
if(表达式)
if(表达式)语句1
else语句2
else
if(表达式)语句3
else语句4
2、switch语句
switch (表达式)
{
case 常量表达式1:
语句1
case常量表达式2:
语句2 // 每一个case表达式后都需要加上break跳出,否则case常量表达式n: 将依次执行下去。
语句n
default :// 大括号划分switch内语句
语句n+1
}
(2)三种循环语句
1、while语句
while语句用来实现“当型”循环结构。
一般形式如下:
while(表达式) // 当表达式非0值时(逻辑表达式),执行while语句中的内嵌套语句,{ 先判断后执行。
语句1; // 分号间隔每一个独立语句。
语句2;// 大括号划分出while内语句。
}
2、do… while 语句
do… while 语句先执行循环体,然后判断循环条件是否成立。
do
{
循环体语句1;// 分号间隔每一个独立语句。
循环体语句2;// 大括号划分do内语句。
}
while(表达式)// 当表达式非0值时(逻辑表达式),执行while语句中的内嵌套语句,先判断后执行。
3、for语句
for语句不仅可以用于循环次数已经确定的循环,而且可以用于循环次数不确定的循环而只给出循环结束条件。
for(循环变量赋初值;循环终止条件;循环变量增值)
{
语句1; // 分号间隔每一个独立语句。
语句2;// 大括号划分for内语句。
}
它的执行过程如下:
(1)、先求解表达式1。
(2)、求解表达式2,若其值为真(值非0),则执行for循环中指定的内嵌语句,然后执行下面的(3)。
若表达式2为假(值为0),则结束循环,转到第(5)步。
(3)、求解表达式3。
(4)、转回上面第(2)步继续执行。
(5)、循环结束,执行for语句下面的一个语句。
(3)其他语句:
1、break语句
break语句可以是流程跳出switch结构,继续执行switch下面的语句。
break语句也可以用来从循环体内跳出循环体,提前结束循环,接着执行循环体下面的语句。
break语句的一般形式为:break;
说明:break语句不能用于循环语句和switch语句之外的任何其他语句。
2、continue语句
在循环体中遇到continue语句,程序将跳过continue语句后面尚未执行的语句,开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。
三:其他语句
1.唯一的三元运算符:条件运算符
表达式:判断表达式1?表达式2:表达式3 // 例如:a>b?a:b
(条件成立取表达式2的值,否则取表达式3的
2.宏定义:#define 标识符字符串// 例如:#define N 300 定义N为300
3.结构体:
一般形式如下:
struct 结构体名
{
类型名1 结构成员名1;
类型名2 结构成员名2;
…
类型名n 结构成员名n;
}s; // 属于该结构体的变量名(类似于int a 中a的角色);
引用结构体变量中的数据:(对结构体成员变量的引用)
1)结构体变量名.成员名 // s.成员名1 (引用后即可当普通变量操作)
2)指针变量名->成员名
3)(*指针变量名).成员名
4.共同体
一般形式如下:
union 共用体标识名
{
类型名1 共用体成员名1;
类型名2 共用体成员名2;。
类型名n 共用体成员名n;
}
共用体变量中成员的引用:
共用体变量名.成员名
指针变量名->成员名
(*指针变量名).成员名
三:文件的操作:文件指针实际上是批向一个结构体类型的指针。
(1)文件的打开,关闭:
FILE *指针变量名; // 定义文件指针
fopen(“文件名”,“文件使用方式”); // (打开文件)例如:fopen(“c:\\file_a”,”r”);
fclose(文件指针) // (关闭文件)例如:fclose(fpout);
判断文件是否能打开,需写入:
FILE * fp;
if((fp=fopen("文件名","打开方式"))==NULL) // 打开文件出错的话
{
printf("cannot open file\n");
exit(0); // exit(1)出错退出。
exit(0) 正常退出}
文件打开方式说明:
1. r ,凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出
2. w,用“w”打开的文件只能向该文件写入。
若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
3. a,要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。
但此时该文件必须是存在的,否则将会出错。
4. +,与上面的字符串组合,以读和写的方式打开文件
(2).文件的读写
读写数据将通过调用标准输入输出函数来完成。
这些函数主要包括:
1).fgetc()和getc():从制定文件中一次读取一个字符
fputc()和putc():一次输出一个字符到指定文件
2).fgets():从指定文件中一次读取一个字符串
fputs():一次输出一个字符串到指定文件
3).fread():从指定文件中一次读取一个数据块
fwrite():一次输出一个数据块到指定文件
4).fscanf():从指定文件中按格式读取数据
fprintf():按指定格式将数据输出到指定文件中
详细介绍:
1.读写字符fgetc和fputc:字符读写函数是以字符(字节)为单位的读写函数。
每次可从文件读出或向文件写入一个字符。
形式:字符变量=fgetc(文件指针)
例如:ch=fgetc(fp); // 从打开的文件fp中读取一个字符并送入ch中。
形式: fputc(变量名,文件指针);
例如:
fputc(a,fp) // 把变量a的值写入fp所指向的文件中。
判断是否出错,需写入:
while((ch=fgetc(fp))!=EOF) // 当文件内容没有执行错误时,顺利执行下一句 2.读写字符串fgets和fouts:从指定的文件中读写一个字符串到字符数组中。
形式: fgets(字符数组名,n,文件指针)
其中的n是一个正整数。
表示从文件中读出的字符串不超过 n-1个字符。
在读入的最后一个字符后加上串结束标志'\0'。
例如:
fgets(str,n,fp) //从fp所指的文件中读出n-1个字符送入字符数组str中。
形式: fputs(字符串,文件指针);
其中字符串可以是字符串常量,也可以是字符数组名,或指针变量。
例如:
fputs(“abcd“,fp) // 其意义是把字符串“abcd”写入fp所指的文件之中。
3.数据块读写函数fread和frite:用来读写一组数据。
读数据块函数调用的一般形式为: fread(buffer,size,count,fp);
写数据块函数调用的一般形式为: fwrite(buffer,size,count,fp);
其中:
buffer 是一个指针,在fread函数中,它表示存放输入数据的首地址。
在fwrite函数中,它表示存放输出数据的首地址。
size 表示数据块的字节数。
count 表示要读写的数据块块数。
fp 表示文件指针。
例如:
fread(fa,4,5,*fp);
其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中,连续读5次,即读5个实数到fa中。
fread(&stu[i],sizeof(struct 结构体名),1,fp);
其意义是从fp所指的文件中,每次读结构体的一个变量名送入数组stu[i]中,连续读1次,即读1个结构体到stu[i]中。
3.格式化读写函数fscanf和fprintf: 函数的读写对象不是键盘和显示器,而是文件.
函数的调用格式为:
fscanf(文件指针,格式字符串,输入表列);// fscanf(fp,"%d%s",&i,s);
fprintf(文件指针,格式字符串,输出表列); // fprintf(fp,"%d%c",j,ch);
(3).文件定位
使“读写位置指针”直接指向指定的读写位置。
函数包括:
fseek():可移动位置指针到指定位置上
ftell():可获得当前位置指针的位置
rewind():“反绕”函数,可使位置指针回到文件的开头
详细介绍:
1.fseek()函数:
一般形式:
fseek(fp, offset, origin)
fp是文件指针,offset是以字节为单位的位移量,为长整型数;origin是起始点,用以指定位移量是以哪个位置为基准的,起始点既可用标识符来表示,也可用数字来代表。
标识符数字代表的起始点
SEEK_SET 0 文件开始
SEEK_END 2 文件末尾
SEEK_CUR 1 文件当前位置
例如:
fp已指向一个二进制文件,能使位置指针从文件的开头向文件尾部移动20个字节的fseek()函数的
调用形式如下:
fseek(fp, 20L, SEEK_SET)
例如:
fp已指向一个二进制文件,能使位置指针从文件尾部向文件开头移动10个sizeof(int)的函数的调
用形式如下:
fseek(fp, -10L*sizeof(int), SEEK_END)
对于文本文件,位移量必须为0。
例如:fp已指向一个文本文件,能使位置指针移到文件起始位置的fseek()函数形式如下: fseek(fp, 0L, SEEK_SET)
例如:fp以指向一个文本文件,能使位置指针移到文件末尾的fseek()函数的调用形式如下: fseek(fp, 0L, SEEK_END)
2.ftell()函数:
调用ftell()函数可以得到当前位置指针相对于文件起始位置的字节数。
函数调用出错时,返回-1L.
例如:当打开一个文件时,通常并不知道该文件的长度,通过以下程序段可以求出该文件的字节数:
fseek(fp, 0L, SEEK_END); //把位置指针移到文件末尾
t = ftell(fp); //求出文件的总字节数
再例如:某二进制文件中存放的struct st结构体类型数据,可以通过以下程序,可求出该结构体类型
数据块的个数:
fseek(fp, 0L, SEEK_END);
t = ftell(fp);
n = t/sizeof(struct st);
3.rewind()函数:
又称“反绕”函数,能使位置指针回到文件的开头。
函数调用形式如下:
rewind(fp);
fp为文件指针,此函数没有返回值。