这里打开的文件是在C盘下的键盘记录器记录文件,就是这个:
在最下面,一个文本文件。这里我用的是C:\\\\record.txt,而不是C:\\record.txt。这是
因为在字符串中,\\r是一个转义字符,不是\\的意思,只有在使用\\\\时,才能表达\\的含义。记住就好。但是有一点比较特殊,这里你可以看一看。在我以前的尝试中,如果我们输入一个文件地址,
让这个程序访问,那么在读取地址时,是不是也要多加一个 \\ ?参照前面的结果,应该是这样的,但实际我们只要按常规提供地址就可以了,你可以看下面的程序演示:
这里我用gets函数读取了一个地址,这个地址是前面我已经打开的的那个main文件的地
址。你可以发现,在这里\\字符只是一个,与前面两个\\字符相矛盾。这个问题的原因我也不是很清楚,先记着吧。文件的最后部分,我把代码贴给你,有兴趣上机调试一下吧。
#include
char c,str[20];//一个char变量,用于承载文本内容 FILE *fp;//声明一个文件指针 gets(str);
fp=fopen(str,\提供了完整的地址,位置在C盘下 while((c=fgetc(fp))!=EOF)//从文件中读取内容 {
putchar(c);// 将内容输出 }
system(\
复合数据结构
结构体 联合体 枚举
二级计算机考试中对于这部分的要求不高,了解即可。一般情况下,机考不会出这部分的题,
因为大多数学生都不会,文件和这部分都是了解即可。
结构体
当你想要创建一种结构体时,常规的声明模式为:
struct 此种结构体名
{ 所含变量; };//这个分号必须有
{
int age; float high; char name[10]; };
这个结构体中,包含了int float char等3种数据类型。这样就实现了多种数据类型的封装,在这种结构体中,你可以按照需求声明各种变量,比如这个,非常经典: struct student
使用起来很是方便。
那么如何具体使用一个结构体呢?首先要注意的是,声明的这个结构体,只是一个虚幻的存
在,如果想使用,必须声明一个具体的结构体,因为上面的代码只是一种形式,而非具体的存在。如果想使用一个结构体,还需要进一步的创建。换一种说法就是student还是一个类,没有具体的形态,只有声明一个属于这个类的对象,我们才能通过这个对象使用此类。说得不太好,但是看看下面的代码相信你就能明白了。
一个很简单的程序,其中包括了结构体的声明,还有初始化。这里当你使用结构体内的具体
数据时,使用 ASD.数据 的,结构体用这样的方式实现内部访问。结构体深入还包括链表,队列,二叉树等多种数据形式,实现的方式使用结构体指针。结构体就不再深入了,以上都是简单的介绍,这个东西深入的话要讲好多好多。
联合体
联合体顾名思义,就是多种数据存在于一个集合内,使用共同的内存空间,单一时刻下只能
保存一个数据,其占内存大小是其中包含数据最大的一个。下面的演示代码能很清楚的说明以上内容:
这说明union student的大小和double是一致的。联合体的好处是可以有效的节省内存空
间,其基本声明方式和使用方法和结构体基本一致,可以参照着使用。
枚举
枚举的声明与结构相似,枚举关键字是enum,相当于结构中的struct。
使用方式为:
enum MEIJU
{ Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday
};
默认情况下,第一项为0,第二项为1,此后每项递加1。枚举的相关内容就介绍一下声明,
这部分的内容在考试中也就声明和默认值部分。别的地方估计就算写了你也看不进去。