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)-->编译程序本身-->优化程序-->汇编程序-->链接程序--> ......
from: 《自己动手写操作系统》
1. 中断向量表 查看 linux/init/main.c in http://lxr.linux.no/#linux+v2.6.32/init/main.c
2.
; [root@XXX XXX]# nasm -f elf foo.asm -o foo.o
; [root@XXX XXX]# gcc -c bar.c -o bar.o
; [root@XXX XXX]# ld -s foo.o bar.o -o foobar
; [root@XXX XXX]# ./foobar
; the 2nd on ......
今天在CC上看到evangel在招人,上面写了一条数据解析,我想应该就是对XML的解析吧,暂且这样理解了,呵呵。下午搜索了一点东西自己弄了一个XML然后读读看看,现在仅仅是读出了一些东西,先保存代码,待后续更新!
这个是我创建的xml文件,用于测试用的:
<?xml version="1.0" e ......
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
壹、基于C的文件操作
在ANSI C中 ......
五、文件定位
和C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的文件定位分为读位置和写位置的定位,对应的成员函数是 seekg()和 seekp(),seekg()是 ......