C语言高速入门系列(八)
C语言位运算与文件
本章引言:
在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对
C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的,由于非常多
老师都会跳过这两个大知识点,事实上这两个也是灰常重要的!比方一个问题,叫你算
变量a乘以2,怎么写效率高?
直接a *2,非常多人都这样写,可是假设你会位运算的话,你会a<<1;
位运算的效率但是比a*2高的哦。还有一个问题,不用变量左中间值,直接交换两个变量的值?
你怎么做?也是用到位运算!
文件操作重要性就不用说啦!好了,请读者尾随笔者的脚步
对C语言中的位运算与文件读写的核心知识点进行剖析吧~
本节学习路线图:
位运算:
ps:位运算符并不改变变量自身的值,能够在运算符后加上等号: a &= b
等同于a = a&b !
文件:
文本文件的使用方式:
"r" | 仅仅读方式打开一个文本文件,仅仅同意度数据,不存在则打开失败 |
"w" | 仅仅写方式打开或建立一个文本文件,仅仅同意写数据 |
"a" | 追加的方式打开一个文本文件,可在文件尾写数据,不存在则创建一个 |
"r+" | 读写方式打开一个文本文件,同意读写,不存在,打开失败 |
"w+" | 读写方式打开或建立一个文本文件,同意读写 |
"a+" | 读写方式打开文本文件,在文件末尾追加数据,不存在则创建一个 |
ps:对于二进制文件,相应的仅仅要改成在每一个后面加上一个b就能够了:
如: r --> rb r+ = rb+
文件具体学习图:
使用代码演示样例:
①单个字符写入/读取
写入: fputc()
<span style="font-family:Microsoft YaHei;">#include <stdio.h> #include <string.h> int main() { FILE *fp; char str[] = "Write The Data to File!"; int index = 0; fp = fopen("test1.txt","w"); if(fp == NULL) { printf("文件打开失败! "); exit(1); } //由于是一个个字符输入的,所以要获得长度 while(index < strlen(str)) fputc(str[index++],fp); fclose(fp); return 0; } </span>
读取:fgetc()
<span style="font-family:Microsoft YaHei;">#include "stdio.h" int main() { FILE *fp; char c; int n = 1; if((fp = fopen("test1.txt","r")) == NULL) { printf("文件打开失败! "); exit(1); } //EOF是文件结尾的标志,此处是推断是否到文件尾 while((c = fgetc(fp)) != EOF) { printf("%c",c); n++; } printf(" "); fclose(fp); return 0; } </span>
执行截图:
ps:假设不写完整路径的话,比方:d:\c_code\day 8的话,会在代码所在的文件夹下生成相应的文本文件!
②读写一个字符串:
写入fputs()
<span style="font-family:Microsoft YaHei;">/* fputs(字符串,fp) 作用:向fp所指的文件里,将字符串写入,'