分类: C/C++
2013-07-25 16:13:22
一、文件操作:
1、打开文件:FILE *fopen(const char *filename, const char * mode);
filename即为文件名,mode即为打开方式。
2、写入文件:size_t fwrite(const void * buffer, size_t size, size_t count, FILE *stream);
buffer是写入文件的数据,size是每个字节为单位的项的大小,count是被写入项的最大数目,stream是指向FILE类的指针,可通过fopen获得。
3、读取文件:size_t fread(void * buffer, size_t size, size_t count, FILE *stream);
4、关闭文件:fclose( FILE *stream);
5、清空缓冲区:fflush( FILE *stream);
数据的写入和读取都会先进入内存的缓冲区
6、文件结束符'\0'的添加:
a、在写入数据时多写入一个字节,即:ch[len+1]='\0';
b、memset(ch,0,100);使得数组字符全为0;
FILE *pFile=fopen("1.txt","r");
char ch[100];
memset(ch,0,100);//使数组中所有数据设置为0
fseek(pFile,0,SEEK_SET);
fread(ch,1,100,pFile);
fclose(pFile);
MessageBox(ch);
c、在读取文件时,求得文件长度len,使得ch[len+1]='\0'.
FILE *pFile=fopen("1.txt","r");
char *pBuf;
fseek(pFile,0,SEEK_END);//移动文件指针到末尾
int len=ftell(pFile);//获取文件长度
pBuf=new char[len+1];
// fseek(pFile,0,SEEK_SET);
rewind(pFile);//移动文件指针到文件头
fread(pBuf,1,100,pFile);
pBuf[len]=0;
fclose(pFile);
MessageBox(pBuf);
二、二进制文件和文本文件
c语言中文件默认打开方式是文本方式打开文件的。
文件只是计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式,而文本文件只是一种特殊的存文件,它每个存放的字节都可以转化为一个可读的字符。
三、二进制方式和文本方式
读取文件的方式和写入文件的方式相同,否则会出现问题。例如,在数据中存在10、13以文本方式打开就回显示回车,二进制则不然。
如下两题目:
1、将整数98341存入文件,以记事本打开文件显示的是:98341。如果将98341写入文本文件,再打开文件显示的是不是整数?结果是否定的。要求以记事本打开看到数字,则只能以ascII每个数字存入才可以看到。
2、输入一字符串判断哪些是数字字符,方式:数字字符的ascII在48到57之间。