2022-02-27 C语言读写程序文件-学习三十二 C语言读写程序文件-学习三十二 顺序读写数据文件在顺序写时,先写入的数据存放在文件中前面,后写入的数据存放在文件中后面。在顺序读时,先读文件中前面的数据,后读文件中后面的数据。对顺序读写来说,对文件读写数据的顺序和数据文件中的物理顺序是一致的。读写一个字符的函数fgetc()函数原型:int fgetc( FILE * fp );调用形式:fgetc(fp)作用:从 fp 所指向的输入文件中读取一个字符。返回值:成功则返回的是读取的字符,发生错误则返回 EOF(即-1)。fputc()函数原型:int fputc( int c, FILE *fp );调用形式:fputc(c,fp)功能:把参数 c 的字符值写入到 fp 所指向的输出流(文件)中。返回值:写入成功,它会返回它会返回写入的字符(一个非负值),发生错误,则会返回 EOF(即-1)。例如:从一个磁盘文本文件顺序读入字符并在屏幕上显示出来。#include <stdio.h> #include <string.h> void main() { char c; FILE* fp = NULL; fopen... XG.孤梦 2022-02-27 学习笔记 2022年02月27日 2,465 阅读 0 评论
2022-02-26 C语言文件-学习三十一 C语言文件-学习三十一 为什么要引入文件数据量大数据访问频繁程序结果需要长期保存使用文件的目的1.程序与数据分离:数据文件的改动不引起程序的改动;2.数据共享:不同程序可以访问同一数据文件中的数据;3.能长期保存程序运行的中间数据或结果数据。文件“文件”指存储在外部介质上数据的集合一批数据是以文件的形式存放在外部介质上的操作系统是以文件为单位对数据进行管理想找存放在外部介质上的数据,先按文件名找到指定的文件,然后再从该文件读数据要向外部介质上存储数据也必须先建立一个文件(以文件名作为标志),才能向它输出数据输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流(stream),即数据流。流表示了信息从源到目的端的流动。输入操作时,数据从文件流向计算机内存输出操作时,数据从计算机流向文件从C程序的观点来看,无论程序一次读写一个字符,或一行文字,或一个指定的数据区,作为输入输出的各种文件或设备都是统一以逻辑数据流的方式出现的。C语言言把文件看作是一个字符(或字节)的序列。输出流就是一个字符流或字节(内容为二进制数据)流。C的数据文件由一连串的字符(或字节)组成,而不考虑行的界... XG.孤梦 2022-02-26 学习笔记 2022年02月26日 1,660 阅读 0 评论
2022-02-25 C语言共用体与枚举类型-学习三十 C语言共用体与枚举类型-学习三十 共用体类型共用体也是一种构造类型,将不同类型的数据组合在一起。但与结构体类型不同,在共用体内的不同成员占用同一段存储区,成员之间互相覆盖,即在同一时刻只有一个成员起作用。为共用体变量分配空间的大小是以所有成员中占用空间字节数最多的成员为标准。共用体类型的声明及变量的定义 共用体类型的声明与结构体的声明完全相同,只是关键字为union。共用体类型的声明格式:union 共用体名{ 数据类型 成员名1; 数据类型 成员名2; ... 数据类型 成员名n; };例如: union data { int i; char c; float f; };共用体变量的定义方式与结构体变量的定义方式相似,也有3种方式:1.类型声明与变量定义分开 union data { int i; char c; float f; }; union data d1, d2;2.在声明类型的同时定义变量 union data { int... XG.孤梦 2022-02-25 学习笔记 2022年02月25日 1,492 阅读 0 评论
2022-02-24 C语言链表-学习二十九 C语言链表-学习二十九 链表的概念结构体数组:静态分配存储单元,容易造成内存浪费。链表:是重要的数据结构,它根据需要,动态分配内存单元。特征:头指针变量,存放链表首地址,链表中每个元素称结点。其内容:数据域:可有若干项(整、实、字符、结构体类型等)指针域:下一结点的地址,最后一个结点(表尾)的地址部分为NULL。链表存储数据的空间可以是不连续的,因此对空间的要求和应比较低。链表中结点的空间是在程序执行过程中根据需要随时向系统申请开辟的内存单元,不用时可以随时释放结点所占用的空间。动态分配与数组不同,它不存在空间浪费的问题。例如:void *malloc(unsigned int size)作用:在内存的动态存储区分配一个长度为size的连续空间。void *calloc(unsigned n,unsigned size);作用:在内存动态区分配n个长度为size的连续空间,函数返回指向分配起始地址的指针; 若分配不成功,返回NULL值。void free(void *p)作用:释放由p指向的动态存储区结点之间是通过指针建立先后顺序。 链表的插入、删除等操作只要改变个别结点地址部分的指向即可,无需移动大... XG.孤梦 2022-02-24 学习笔记 2022年02月24日 1,342 阅读 0 评论
2022-02-23 C语言结构体数组、指针与函数-学习二十八 C语言结构体数组、指针与函数-学习二十八 结构体数组结构体数组的定义一个结构体变量只能存放一组有关联的数据,比如一个学生的数据, 如果要存放多个学生的数据,就要使用结构体数组。在声明了结构体类型之后,结构体数组的定义与基本类型数组的定义完全相同。例如:struct student{ long int no; char name[20]; char sex; float score; }; struct student stu[3];定义了struct student类型的数组,数组名为stu,包含3个数组元素,每个数组元素都是一个struct student类型的结构体变量,分别是stu[0].stu[1].stu[2]。结构体数组的引用产表示下标为i的结构体数组元素的成员no的值stu[i].no;产表示下标为i的结构体数组元素的成员name的首地址(name为char数组)stu[i].name;表示下标为i+1的结构体数组元素的成员sex值stu[i+ 1].sex;产表示下标为i- 1的结构体数组元素的成员score的地址&stu[i- 1].score;结构... XG.孤梦 2022-02-23 学习笔记 2022年02月23日 1,913 阅读 0 评论
2022-02-22 C语言结构体-学习二十七 C语言结构体-学习二十七 结构体类型用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。声明一个结构体类型的一般形式为:struct 结构体名 {成员列表};说明:1.可以设计出许多种结构体类型例如:struct Teacherstruct Workerstruct Date 等结构体类型,各自包含不同的成员2.成员可以属于另一个结构体类型例如:struct Date { int month; int day; int year; }; struct Student{ int num; char name[20]; char sex; int age; struct Date birthday; }; 结构体类型变量1.先声明结构体类型,再定义该类型变量。例如:// 声明结构体类型 struct Student{ int num; char name[20]; char sex; int age; }; // 定义该类型变量 // 结构体类型名 结构体变量名 struc... XG.孤梦 2022-02-22 学习笔记 2022年02月22日 1,600 阅读 0 评论
2022-02-21 C语言位运算-学习二十六 C语言位运算-学习二十六 运算符使用说明:1.位运算符中,除按位取反运算符“~”外,其他均为二目(元)运算符,即运算符两侧各有一个操作对象;2.位运算的运算对象的数据类型只能是整型或字符型;3.位运算可以与赋值运算符结合,组成位复合赋值运算符符: <<=、=>>、 &=、 ^=、|=按位取反运算语法格式:~ 表达式按位取反运算符(~)的运算规则: 对参与运算的表达式的值按位进行“求反”运算。即将表达式值各二进制位上的1变为0,0变为1。按位取反(~)为单目运算符,其优先级别与其他单目运算符相同,并且同级时自右向左结合。例如:int a=1; ~a 即0 0 0 0 0 0 0 1 -----------------------------------1 1 1 1 1 1 1 0,因此~a的值得 -2 。例子#include <stdio.h> void main(){ short int a = 1, b; b = ~a; printf("a= %d\nb= %d\n",a, b); }按位与运算语法格式:表达... XG.孤梦 2022-02-21 学习笔记 2022年02月21日 1,410 阅读 0 评论
2022-02-20 C语言字符串与指针-学习二十五 C语言字符串与指针-学习二十五 字符串的引用方式字符串是存放在字符数组中的。引用一个字符串,可以用以下两种方法:用字符数组存放一个字符串,可以通过数组名和格式声明 “%s” 输出该字符串也可以通过数组名和下标引用字符串中一个字符。用字符指针变量指向一个字符串常量,通过字符指针变量引用字符串常量。例子#include <stdio.h> void main() { char string[] = "I love China!"; printf("%s\n", string); printf("%c\n", string[7]); // 输出第八个字符 } //通过字符指针输出一个字符串 #include <stdio.h> void main() { char *string = "I love China!"; printf("%s\n", string); printf("%c\n", string[7]); // ... XG.孤梦 2022-02-20 学习笔记 2022年02月20日 1,504 阅读 0 评论