计算机二级课程记录(14)

位运算

按位取反 ~
左移 <<,原有数值*2
右移 >>,数值/2
按位与 &,1&1= 1,1&1=0,0&0= 0,有0为0
按位异或 ^,异为1
按位或 |,1|1 = 1,1|0 = 1,0|0 = 0,有1为1
//位运算只能为整型和字符型

文件

文件指针是程序中用FILE定义的指针变量
一.文件管理两种方式
1.二进制文件
2.文本文件

二.文件指针
结构体类型指针
只能存放结构体类型的地址
FILE * 指针变量名

FILE *fp1,*fp2;

1.打开文件

FILE *fp;
fp = fopen("file_a","r");

2.文件打开方式

r               只读
w               只写,无,建文件,有,则覆盖文件
a               增添数据

rb              只读二进制文件
wb              只写二级制文件
ab              二级制文件增添数据

r+			    读写文本文件
w+              读写,建立文本文件
a+              读写文本文件
  
rb+		        读写二级制文件
wb+             读写,建立二级制文件
ab+             读写二级制文件

3.关闭文件

FILE *fp;
fp = fopen("file_a","r");
fclose(fp);

【例子1】文件写入

#include<stdio.h>
#include<stdlib.h>
void main(void)
{
	FILE *fp;
	char ch,filename[10];
	scanf("%s",filename);
	if((fp = fopen(filename,"w")) == NULL)//如果磁盘已满,则打印不能打开文件,并结束程序
	{
		printf("cannnot open file\n");
		exit(0);//结束程序
	}
	ch = getchar();接收scanf语句,回车
	ch = getchar();输入第一个字符
	while(ch!='#'{fputc(ch,fp);.//考试要点,字符和文件
		putchar(ch);//输出文件
		ch = getchar();
	}
	fclose(fp);//结束文件
}

【例子2】文件读取

#include<stdio.h>
#include<stdlib.h>
void main(void)
{
	FILE *fp;
	char ch;
	if((fp = fopen(filename,"w")) == NULL)//如果磁盘已满,则打印不能打开文件,并结束程序
	{
		printf("cannnot open file\n");
		exit(0);//结束程序
	}
	ch = getchar(fp);
	while(ch!=EOF//当输入#时,结束循环
	{	
		putchar(ch);//输出文件
		ch = getchar(fp);
	}
	fclose(fp);//结束文件
}

4.判断文件结束feof

FILE *fp;
feof(fp);

文件结束返回值为非0,否则0;
5.fprintf()和fscanf()函数

fprintf(文件指针,格式字符串,输出列);
fscanf(文件指针,格式字符串,输出列);

功能
磁盘文件读入或输出字符

fprintf(fp,"5d",i,t);
fscanf(fp,"%d",&i,&t);

6.fgets()和fputs()函数

fgets(str,n,fp);

从fp文件找出n-1个字符,输入到str中
返回值为str的首地址

fputs("china",fp);

在fp文件输入China
返回值为,反之为EOF
7.fread和fwrite函数

fread(buffer,size,cout,fp);

buffer为内存首地址,数据块指针
输入的数据存入此数据块中
fwrite(buffer,size,cout,fp);//fp和fwrite考点
8.文件定位

rewind(fp);//回到文件开头
fseek(pf,offset,origin);//偏移量
ftell(fp);获取指针当前位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值