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

C语言 修改文件 一部分内容

2014-02-14 11:22 141 查看


http://www.cnblogs.com/tzhangofseu/archive/2011/10/13/2210247.html

转自: http://www.xxlinux.com/linux/article/development/soft/20070601/8652.html

格式:文件指针名=fopen(文件名,使用文件方式)

参数:

文件名 意义

"C:\\TC\\qwe.txt" 文件C:\TC\qwe.txt

"qwe.txt" 和程序在同一目录下的qwe.txt

文件使用方式   意 义

“rt”      只读打开一个文本文件,只允许读数据

“wt”      只写打开或建立一个文本文件,只允许写数据

“at”      追加打开一个文本文件,并在文件末尾写数据

“rb”      只读打开一个二进制文件,只允许读数据

“wb”       只写打开或建立一个二进制文件,只允许写数据

“ab”       追加打开一个二进制文件,并在文件末尾写数据

“rt+”      读写打开一个文本文件,允许读和写

“wt+”      读写打开或建立一个文本文件,允许读写

“at+”     读写打开一个文本文件,允许读,或在文件末追加数据

“rb+”      读写打开一个二进制文件,允许读和写

“wb+”      读写打开或建立一个二进制文件,允许读和写

“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:

  1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

  r(read): 读

  w(write): 写

  a(append): 追加

  t(text): 文本文件,可省略不写

  b(banary): 二进制文件

  +: 读和写

  2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

  3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

  4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。

  5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。

如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针

(NULL)。由此可判断文件打开是否成功。

=============================================
// fopen 方式

#include <stdio.h>

#include <stdlib.h>

int main()

{

// 开始a.txt文件中的内容为 iiiiiiiiiiiiiiiiiiii

// 修改了之后文件中的内容为 iiii1234567iiiiiiiii

FILE * fp = fopen("a.txt", "r+");

char buff[]="1234567";

if (fp == NULL)

{

printf("open error! \n");

exit(1);

}

fseek(fp, 4, SEEK_SET); // 第四位

fwrite(buff, strlen(buff), 1, fp);

fclose(fp);

return 0;

}

==================================================
// open 方式
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <fcntl.h>

int main()

{

int fd;

int ret;

char buff[16]={0};

fd = open("/dev/mtdblock2", O_RDWR, 0666);

if (fd < 0)

{

printf("open file error\n");

return -1;

}

else

printf("open file Success !!!\n");

printf("Input --->");

scanf("%s",buff);

lseek(fd, 256, SEEK_SET);

ret = write(fd, buff, 7);

//ret = write(fd, buff, strlen(buff));

//ret = write(fd, "xxxxxx", 7);
//read(fd, buff, 7);

if(ret == -1)

printf("write error \n");

else

printf("write success \n");

close(fd);

return 0;

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