C读写文件--逐行输出、删除指定的一行,指定位置插入
来源:互联网 发布:矩阵的初等变换规则 编辑:程序博客网 时间:2024/05/16 03:03
#include <stdio.h>#include <string.h>void InsertLine(char* FileName, int Line, char str[256]);void deleteLine(char* FileName, int lineno) ;void print(char *filepath);int main() { print("test.txt"); printf("/n....................................................../n"); InsertLine("test.txt", 3, "abvccc/n"); print("test.txt"); printf("/n....................................................../n"); deleteLine("test.txt", 3); printf("/n....................................................../n"); print("test.txt"); return 0; } /*********************************************************************** 函数名称: InsertLine* 功能描述: 向文件指定行增加一行* 访问的表: 无* 修改的表: 无* 输入参数: char* FileName 文件 int Line 行;* char str[1024] 要增加的内容* ***********************************************************************/void InsertLine(char* FileName, int Line, char str[256]) { int Lid=0; int MaxLine=0; FILE* fp=NULL; char Buf[1024]=""; char tmp[500][1024]={0}; if ((fp=fopen(FileName,"r+")) == NULL) { printf("Can't open file!/n"); return; } while (fgets(Buf, 1024,fp)) { Lid++; if(Lid == Line) { strcpy(tmp[Lid++],str); } strcpy(tmp[Lid],Buf); } MaxLine=Lid; rewind(fp); for(Lid=1 ;Lid <= MaxLine;Lid++) { fputs(tmp[Lid],fp); } fclose(fp); } /*********************************************************************** 函数名称: InsertLine* 功能描述: 向文件指定行增加一行* 访问的表: 无* 修改的表: 无* 输入参数: char* FileName 文件 int Line 行;* char str[256] 要增加的内容* ***********************************************************************/void deleteLine(char* FileName, int lineno) { int Lid=0; int MaxLine=0; FILE* fp=NULL; char Buf[256]=""; char tmp[20][256]={0}; char *p = Buf; if ((fp = fopen(FileName, "r+")) == NULL) { printf("Can't open file!/n"); return; } while ((p = fgets(Buf, 256, fp)) != NULL) { Lid++; if (Lid == lineno) { if ((p = fgets(Buf, 256, fp)) != NULL) { strcpy(tmp[Lid], Buf); } } else { strcpy(tmp[Lid], Buf); } } MaxLine = Lid; rewind(fp); fclose(fp); remove(FileName); // 删除原文件 if((fp = fopen(FileName, "w")) == NULL) { printf("Can't open file!/n"); return; } for(Lid = 1; Lid <= MaxLine; Lid++) { fputs(tmp[Lid], fp); } fclose(fp); } //输出到控制台 void print(char *filepath) { int nl = 0; FILE *stream; char s[256]; char *p = s; stream = fopen(filepath, "r+"); while ((p = fgets(s, 256, stream)) != NULL) { nl++; printf("Line %d: %s", nl, s); } fclose(stream); }
0 0
- C读写文件--逐行输出、删除指定的一行,指定位置插入
- C读写文件--删除指定的一行
- C读写文件--删除指定的一行
- sed对文件指定位置添加或者删除一行
- Android:读写指定位置文件
- 向指定文件,指定位置插入内容
- 简单顺序表的插入,删除,指定位置,指定元素的插入删除操作
- VC逐行读取指定文件的内容
- C/C++在文件指定位置插入字符串或者空行
- 文件里面的指定行插入一行数据
- js数组 插入和删除指定位置
- java类读写文件到指定位置(项目发布到tomcat上的指定位置)
- 一行php代码删除指定目录下的所有文件
- 输出指定位置的数字
- Shell行操作:逐行读取,指定行输出,指定行删除等
- python插入内容到指定文件的位置
- xml文件指定位置插入节点+小结
- 扫描指定位置的指定文件
- Android 面试精华题目总结
- ViewGroup generateDefaultLayoutParams()
- Mojolicious学习笔记
- 开箱即用!Android四款系统架构工具
- .NET之“编码规则”小总
- C读写文件--逐行输出、删除指定的一行,指定位置插入
- STM32F1xxx存储器和总线架构
- 修改phpmyadmin中的默认登陆超时时间
- 诺优能是牛栏吗
- Android实战技巧:ViewStub的应用
- Android Handler机制
- 快捷代码格式设置
- 【3026】X的纠结
- ViewGroup getChildMeasureSpec