吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2901|回复: 3
收起左侧

[C&C++ 转载] 【笔记】第十章 位运算与文件(C语言)(完结)

  [复制链接]
sphao 发表于 2017-8-3 17:46
本帖最后由 sphao 于 2017-8-3 17:49 编辑

第十章 位运算与文件
一 位运算
位运算的操作对象只能是整型或字符型数据
C语言提供6种位运算符:
&     |     ^     ~     <<     >>
复合赋值运算符:
&=     |=     ^=     <<=     >>=
1. 按位与运算(&)~~~~~按位乘
     两个相应的二进制位都是1时, 它们按位运算后的结果才为1, 否则为0
1&1=1
1&0=0
0&1=0
0&0=0
作用: 清零
     全1为1, 有0为0
2. 按位或运算(|)~~~~~按位加
     两个相应的二进制位中只要有一个为1, 则它们按位或运算后结果为1。
1|1=1
1|0=1
0|1=1
0|0=0
作用: 将特定位置1
     有1为1, 全0为0
3. 按位异或运算(^)
当两个相应位同为1或同为0时, 按位异或运算结果为0; 两个相应位一个为1另一个为0时, 按位异或运算结果为1
1^1=0
1^0=1
0^1=1
0^0=0
     相异为1
     相同为0
4. 按位取反运算(~)
按位取反运算符是一个单目运算符. 按位取反, 0变1, 1变0
注:
对一个数按位取反得到的值为该数+1后再乘以-1
5. 按位左移运算(<<)
     格式: 数<<n
     功能: 将二进制位按位依序左移n 位
对一个十进制数左移n位后得到的值为该数乘以2n 的积
6. 按位右移运算(>>)
     格式: 数>>n
     功能: 将二进制位按位依序右移n位
若该数为一个负数并且不能被2n 整除则得到的数为商加-1
二 文件
(一)文件概念
1. 文件: 记录在外部存贮介质(外存)上的数据的集合
2. 文件的分类:
     文本文件(ASCII码文件): 每个字符存储到文件中
     二进制文件: 以二进制存储
     C语言中对文件的存取是以字符(字节)为单位的
3. 文件类型指针
     FILE就是文件类型名, 它是一个结构体类型. 对一个文件进行操作, 通过文件指针进行的, 定义如下:
     FILE *fp, *in, *out;
(二)文件的打开与关闭
1. 文件的打开(fopen()函数)
     格式:  fopen(文件名, 文件使用方式)
     功能: 按指定的“使用方式”打开文件, 函数返回所打开文件的指针, 该指针的基类型为文件类型. 文件名和文件使用方式均为字符串
     如: 以只读方式打开文件data.txt, 并用指针变量fp指向它
FILE *fp;
fp=fopen("data.txt","r");
     打开文件的“使用方式”(12):
"r":     打开已存在文件
"w":    刷新写 创建写
"a":     追加写 创建写   
"+":    增强
"b":     二进制文件
"r+" "w+" "a+"
"rb" "wb" "ab"
"rb+" "wb+" "ab+"
注:
     (1)文件使用方式只能用小写字母, 文件名用大写或小写均一样
如:
     FILE *fp;
     fp=fopen("c:\\tc\\data.txt","w");     ('\\'表示'\')
     (2)在“文件使用方式”中若含有字母b, 则打开的是一个二进制文件(bit)
     (3)当fopen“打开”失败时, 函数返回NULL
if((fp=fopen(文件名, 文件使用方式)==NULL))
{
     printf("can not open this file\n");
     exit(0);
}
2. 文件的关闭(fclose()函数)
     文件使用完后应该关闭该文件
     格式: fclose(文件指针)
(三)文件的读, 写操作
文件打开后可以对文件进行操作. C语言中对文件的操作是通过库函数一实现的. 文件读写操作有以下四类:
     读/写文件中的一个字符      fputc()、 fgetc()
     读/写文件中的一个字符串     fputs() 、fgets()
     读/写文件中的一个数据块     fread()、fwrite()
     对文件进行格式化读/写     fprintf()、fscanf()
(1)fputc()
     格式: fputc(字符, 文件指针)
     功能: 把一个字符写到文件指针所指的文件中. 其中字符可以是字符常量也可以是字符变量. 若输出成功则函数返回输出的字符,  失败则返回EOF(stdio.h中定义为-1)
(2)fgetc()
     格式: fgetc(文件指针)
     功能: 从文件指针所指文件中读取一个字符. 若读取成功则函数返回读取的字符, 失败(遇到文件结束) 则返回EOF
(3)fgets()
     格式: fgets(str,n,fp)
     功能: 其中str表示一个字符指针, 可以是字符数组名也可以是字符指针变量名. 从fp所指文件中读取n-1个字符(不是n 个字符),  并在这些字符的最后加一个字符串结束符‘\0’后赋给str. 函数返回str的首地址
(4)fputs()
     格式: fputs(str,fp)
     功能: 向fp所指文件中写(输出)str中的字符串, str可以是字符串常量, 字符数组或字符指针变量. 在输出时字符串的结束符'\0'不输出. 若输出成功则返回0, 失败返回EOF
(5)fread()      fwrite()
     格式:
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
     其中:
buffer是数据的地址
size是每次读写的字节数
count表示让函数进行多少次的读写
fp是要进行读写的文件指针变量
     功能:用来读写一个连续的数据块
     注:
这两个函数按二进制方式进行读写
(6)fprintf()     fscanf()
     格式:
fprintf(文件指针, 格式说明符, 输出列表);
fscanf(文件指针, 格式说明符, 输入列表);
     功能: 按格式说明符所指定的格式向文件中读写(输入输出)数据. 其中格式说明符和输入(输出)列表的用法与scanf和printf函数相同
补充: feof(文件指针)
作用是测试文件的当前读写位置是否在文件末尾, 若是则返回非0值(真), 否则返回0(假)
(四)文件当前读写位置函数
(1) 重新定位指针
     格式: rewind(文件指针)
     作用: 使当前的读写位置重新指向文件的开头, 函数无返回值
(2)fseek()
     格式: fseek(文件指针, 位移量, 起始点)
     位移量: 要在数值后面家字母l或L
          fseek(fp, 100L, SEEK_SET)
     功能: 将当前的读写位置从“起始点”开始按“位移量”所指定的移动字节数向后移动
     起始点有:
SEEK_SET 或0(表示“文件的开始”)
SEEK_CUR 或1 (表示“当前位置”)
SEEK_END 或2 (表示文件末尾)
(3)ftell()
     格式: ftell(文件指针)
     功能: 返回当前文件的位置, 用相对于文件头的位移量表示. 若返回-1L表示出错

【笔记】第十章 位运算与文件(C语言)(完结)
http://www.52pojie.cn/thread-631844-1-1.html【笔记】第九章 构造类型(C语言)
http://www.52pojie.cn/thread-631408-1-1.html
【笔记】第八章 指针(C语言)
http://www.52pojie.cn/thread-630294-1-1.html
【笔记】第七章 函数与预编译(C语言)
http://www.52pojie.cn/thread-629758-1-1.html
【笔记】第六章 数组(C语言)
http://www.52pojie.cn/thread-629287-1-1.html
【笔记】第五章 循环结构(C语言)
http://www.52pojie.cn/thread-628823-1-1.html
【笔记】第四章 选择结构(C语言)
http://www.52pojie.cn/thread-627932-1-1.html
【笔记】第三章 顺序结构(C语言)
http://www.52pojie.cn/thread-627411-1-1.html
【笔记】第二章 C语言组成及数据
http://www.52pojie.cn/thread-627006-1-1.html
【笔记】第一章 C语言基础知识
http://www.52pojie.cn/thread-626978-1-1.html

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
610100 + 2 + 1 谢谢@Thanks!
dreamchaser + 1 + 1 谢谢@Thanks!
KaQqi + 1 都到第十章了?

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

KaQqi 发表于 2017-8-3 20:53
本帖最后由 cqr2287 于 2017-8-4 07:53 编辑

都到第十章了,我居然忘了加分了...
为何不给爱学习,笔记详细,态度认真,乐于共享的人加分呢?
@610100

怎么就完结了?不出了?
pjlove 发表于 2017-8-5 09:33 来自手机
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 08:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表