您的位置:首页 > 编程语言 > C语言/C++

c语言文件操作总结

2015-05-01 23:23 381 查看
#include<stdio.h>

/************************************************************************/
//    FILE *fopen(const char *filename,const char *mode)
// FILE *freopen(const char *filename,const char *mode,FILE *stream)以指定模式打开文件,并将文件关联到stream流中
/*  r 打开文件用于读
w 创文本用于写,如果存在文本,则删除文本内容,然后写
a 打开文本或者创建文本用些追加写
r+打开文本用于更新,即读和写
w+ 打开文本用于更新,并删除已经存在的内容
a+ 打开文本用于更新,写文件追加到末尾
后3中更新模式,支持对同一文件进行读写,在同读写交叉的操作,需要用fflush来刷新文件内容
rb  w+b表示对二进制文件进行操作
//将文件读/写指针移到距文件头100字节处
fseek( fp,  100L, SEEK_SET );
//将文件读/写指针从当前位置向文件尾方向移50字节
fseek( fp,   50L, SEEK_CUR );
//将文件读/写指针从当前位置向文件头方向移50字节
fseek( fp,  -50L, SEEK_CUR );
//将文件读/写指针从文件尾回移100字节
fseek( fp, -100L, SEEK_END );                                                    */
/************************************************************************/
int main(){
FILE *fp;
int re =1;
int re2 = 10;
char c ;
char str[50];
int iFC = -1;
int cnt = 0;
memset(str,0x00,sizeof(str));
fp = fopen("d:\\t2.txt","a+");

//文件按行读取
while (!feof(fp))
{
cnt++;
printf("第%d行\n",cnt);
/**原型是:char *fgets(char *s, int n, FILE *stream);从文件指针stream中读取n-1个字符,存到以s为起始地址的空间里,直到读完一行,如果成功则返回s的指针,否      则返回NULL。*/
fgets(str,100,fp);
printf("%s\n",str);
if (cnt==1)
{
fgets(str,100,fp);
printf("%s",str);
break;
}
}

printf("*****************\n");
fseek( fp,  -2L, SEEK_END );
c = getc(fp);
printf("fp = [%c]\n",c);
printf("*****************\n");
//     //末尾插入e
//     fseek( fp,  0L, SEEK_END );
//     putc('e',fp);

//单个字符打印内容
fseek( fp,  0L, SEEK_SET );
c = getc(fp);
while(c != EOF){
printf("fp = [%c]\n",c);
c = getc(fp);
//char是5多打印一次
if(c == '5'){
fseek(fp,-1L,SEEK_CUR);
printf("fp = [%c]\n",c);
fseek(fp,1L,SEEK_CUR);
}
}

//从头开始读取5个字节(实取4个)
fseek( fp,  0L, SEEK_SET);
fgets(str,59,fp);//sizeof is 5, strlen is 4  because of '\0'
printf("str--------> = [%s]\n",str);

//从头开始读取6个字节
fseek( fp,  0L, SEEK_SET);
fread( str, 3, 2, fp );  //参数3 size_t表示每个数据项包含的字节数
printf("str = [%s]\n",str);

//文件尾写入endEND
fseek( fp,  0L, SEEK_END);
fputs("end",fp);
fseek( fp,  0L, SEEK_CUR);
fwrite("END",3,1,fp);
fseek( fp,  0L, SEEK_END);
//   int getline(char s[],int lim)
  //    fp->getline(str,0);

//文件关闭
iFC = fclose(fp);
if (iFC)
{    printf("Failed to close file!");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: