C、C++语言的文件操作
今天归纳总结一下文件操作函数及各个参数的含义:
先介绍一下c++的文件操作,为什么说c++的文件操作呢,因为对于c语言的操作,也有它的函数之不过大同小异罢了。
在c++的文件操作中有,有一个类对文件操作进行操作,即CFile,下面就写一段代码,来简单的进行介绍。
CFile cf;
char zhi[]={1,2};
char* Name = "zgm.data";
if(!cf.Open(Name,CFile::modeCreate|CFile::modeWrite))
return;
cf.Write(zhi,2);
cf.Close();
这是一个很简单的文件操作代码(介绍东西就要从简单开始,不然一味追求难,到最后自己都搞不懂),
首先定义了文件操作这个类,然后通过调用这个类的Open函数来打开所有进行操作的文件。cf.Open(Name,CFile::modeCreate|CFile::modeWrite))第一个参数是所要打开文件的文件名,第二个是打开方式,打开方式有许多种(因为文件的情况有许多种),有的文件是不存在的,所要要使用CFile::modeCreate来创建这个文件;有的只允许读,要使用CFile::modeRead;有的只允许写,要使用CFile::modeWrite。所以要按实际情况来写相应的参数。这里有一个问题可能大家不明白为什么这里会存在“|”,其实这是C语言重的或操作,以上代表的方式是:以创建的方式打开,并且可进行写操作。如果你还需要什么操作,还可以在后面进行|。。。。这些操作。或许又有有疑问,为什么这样操作,就能“告诉”编译器我可以操作。其实像“CFile::modeCreate”,它其实也是一个值,应该累世与000000001这种,而CFile::modeWrite应该是前面的值错开的比如00000010;这样这些一系列的值,组合在一起,就类似于000011111...。有多少个“1”,就代表有多少种模式;
接下来就是写文件的操作 cf.Write(zhi,2);这两个参数很简单,第一个是指针,即所要写数据的地址,第二个参数是所要写的数据类型的个数。在这里有一个问题,即地址是什么类型,那写进去的数据是什么类型的(或许我多说了,哈)。
最后写好了文件应该是要关闭的;所要应该进行这么一个操作;
而对于c语言的操作就有点不一样了(名字差不多),这个归结起来还是和这两门语言的思想的原因造成的吧;
c语言都是函数,不存在类的思想。看下面就知道了
FILE *fp;
char* buffer_100;//开辟100个char型的内存;
buffer = (char *)malloc
相关文档:
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序--> ......
在Perl的各种文件测试运算符中,最有用的运算符之一就是 -C 了。
它返回的是文件的ctime到程序启动的那一时刻经过的天数。
如果不是整数天,返回值就带有小数。
这个运算符经常用来检测文件是否过期,比如判断文件距离上次修改是否超过了3天,
如果超过就将其删除。但是,你是否真正理解 -C 的工作原理呢?
何谓ctime
......
今天看到一种比较安全的枚举写法!
enum example
{
item1 = 0,
item2,
item3,
item4,
item5,
max /* when you want to add element,please add before this */
};
当你使用它的时候:
example ex1;
i ......
五、文件定位
和C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的文件定位分为读位置和写位置的定位,对应的成员函数是 seekg()和 seekp(),seekg()是 ......
[
摘要]
指针是
C和
C++语言编程中最重要的概念之一,也是最容易产生困惑并导致程序出错的问题之一。利用指针编程可以表示各种数据结构
, 通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯;并能像汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了 ......