社区
C++ 语言
帖子详情
怎样用c++完成对txt文件中某一行进行删除或修改
fight_flight
2010-03-21 10:41:26
ifstream可以独文件,ofstream可以写文件,那要怎样删除或修改特定的某一行呢
...全文
3669
8
打赏
收藏
怎样用c++完成对txt文件中某一行进行删除或修改
ifstream可以独文件,ofstream可以写文件,那要怎样删除或修改特定的某一行呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cobra_chen
2012-05-03
打赏
举报
回复
Mark,一直也想这个问题。
4L的代码没事试试。
赵4老师
2012-05-03
打赏
举报
回复
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
clever101
2012-05-03
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
改写成c++版本的:
文本覆盖、插入、修改,简单的示例一下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *insert = "EE,EE,EE,", tmp[256]={0};
int pos, i;
/*test.txt文件内容:……
[/Quote]
fgets(tmp, 256, fp); /*把后面的数据缓存*/ 这一步缓冲区设为多大不好设吧。
cattycat
2010-03-21
打赏
举报
回复
楼上很强大。up一下,楼主应该会了吧。
jixingzhong
2010-03-21
打赏
举报
回复
改写成c++版本的:
文本覆盖、插入、修改,简单的示例一下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *insert = "EE,EE,EE,", tmp[256]={0};
int pos, i;
/*test.txt文件内容:01,00,00,00,0E,00,00,00,00,00,00,E1,E2,00,00,00,00*/
fp = fopen("test.txt", "r+");
/*1、等长覆盖*/
fseek(fp, 12, 1);
fprintf(fp, "0F"); /*直接写入等长度的数据就可以完成覆盖*/
/*2、E2后插入“EE,EE,EE,” */
fseek(fp, 25, 1);
pos = ftell(fp); /*插入位置*/
fgets(tmp, 256, fp); /*把后面的数据缓存*/
fseek(fp, pos, 0); /*移动到插入位置*/
fprintf(fp, insert); /*插入,就是写入数据*/
fprintf(fp, tmp); /*把原来的数据再写回来, 完成*/
/*3、01读取后++两次,并重新写回文件*/
rewind(fp);
fscanf(fp, "%x", &i); /*读取数据*/
i = i+2; /* +2 */
fseek(fp, -2, 1); /*调整指针*/
fprintf(fp, "%02x", i); /*写文件*/
fclose(fp);
system("PAUSE");
return 0;
}
fight_flight
2010-03-21
打赏
举报
回复
有没有直接定位操作的,不改变其他行
f418063285
2010-03-21
打赏
举报
回复
如果文件不大,读出来修改再写进去!
cy330206
2010-03-21
打赏
举报
回复
用函数实现,或者用算法去实现
C++
操作
文件
进行
读取、
删除
、
修改
指定行
代码如下: /******************************************************** Copyright (C), 2016-2018, FileName: main Author: woniu201 Created: 2018/08/31 Description:
文件
操作:读取指定行,
删除
指定行,
修改
指定行 ********************************************************/ #include
#include
#include
C++
学生成绩管理系统,2000行完整源代码,超多功能
这个
C++
管理系统基本涵盖了“学生成绩管理系统”的所有功能,你可以从
中
借鉴到
C++
链表、类、封装、继承、
文件
操作、排序等等很多知识,极具借鉴意义,以下为本项目的功能介绍: 1. 建立
文件
(1)可以使用默认
文件
名或指定
文件
名将记录存储到 (2)设置适当的标志位,作为对记录
进行
操作的 (3)写同名
文件
将覆盖原来
文件
的 2.增加学生记录 (1) 可在已有记录后面追加新的记录 (2) 可以随时增加新的记录,它们仅保存在向量数组
中
(3) 可以将一个
文件
读入,追加在已有记录之后 (4) 采取
文件
追加方式时,在没有保存到
文件
之前,将继续保持
文件
追加状态,以便实现连续追加操作方式 3. 新建学生信息
文件
(1) 用来新建学生信息记录 (2) 如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存 到一个指定
文件
,然后重新建立记录 (3) 给出相应的提示信息 4. 显示记录 (1) 如果没有记录可供显示,给出提示信息 (2) 可以随时显示内存
中
的记录 (3) 显示表头 5.
文件
存储 (1) 可以按默认名字或指定名字存储记录
文件
6. 读取
文件
(1) 可以按默认名字或指定名字将记录
文件
读入内存 (2) 可以将指定或默认
文件
追加到现有记录的尾部 (3) 可以将
文件
连续追加到现有记录并更新记录
中
的“名次” 7.
删除
记录 (1) 可以按“学号”、“姓名”或“名次”方式
删除
记录 (2) 标志将被
删除
的记录, 可以再次取消标志, 经确认后
删除
已经标志的记录(3) 如果记录是空表,
删除
时应给出提示信息并返回主菜单 (4) 如果没有要
删除
的信息, 输出“没有找到”的信息 (5) 更新其他记录的名次 (6)
删除
操作仅限于内存, 只有执行存储操作时, 才能覆盖原记录 8.
修改
记录 (1) 可以按“学号”、“姓名”或“名次”方式查找要
修改
的记录内容 (2) 给出将被
修改
记录的信息, 经确认后
进行
修改
(3) 如果记录已经是空表,应给出提示信息并返回主菜单 (4) 如果没有找到需要
修改
的信息, 输出“没有找到”的信息 (5) 更新其他记录的名次 (6)
修改
操作仅限于内存, 只有执行存储操作时, 才能覆盖原记录 9. 查询记录 (1) 可以按“学号”、“姓名”或“名次”方式查询记录 (2) 能给出查询记录的信息 (3) 如果查询的信息不存在, 输出提示信息 10. 对记录
进行
排序 (1) 可以按”学号”
进行
升序和降序排列 (2) 可以按”姓名”
进行
升序和降序排列 (3) 可以按”名次”
进行
升序和降序排列 (4) 如果属于选择错误, 可以立即退出程序
纯c读写ini配置
文件
纯c读写ini配置
文件
用c/
c++
读写ini配置
文件
有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小写处理、前后空格、各种注释、跨平台换行符支持、带引号字符串处理、无section操作、原格式保持等方面存在问题。 现将本人精心制作的ini读写程序源码奉献给大家,纯c编写,简洁好用。支持windows和linux。 主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号
中
可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。 4、支持10、16、8进制数,0x开头为16进制数,0开头为8进制。 5、支持section、key或=号前后带空格。 6、支持\n、\r、\r\n或\n\r换行格式。 7、不区分section、key大小写,但写入时以新串为准,并保持其大小写。 8、新增数据时,若section存在则在该节最后一个有效数据后添加,否则在
文件
尾部添加。 9、支持指定key所在整行
删除
,即
删除
该键值,包括注释。 10、可自动跳过格式错误行,
修改
时仍然保留。 11、
修改
时保留原注释:包括整行注释、行尾注释(包括前面空格)。 12、
修改
时保留原空行。以上三点主要是尽量保留原格式。 不足之处: 1、不支持单key多value(逗号分割),只能一次性提取后自行处理。 2、不支持同名重复section和key。(重复section可视为错误,重复key则可能造成分歧) 3、不能提取所有section或key名称。 使用只需两个
文件
inirw.h、inirw.c,另有测试程序和工程
文件
,支持windows和linux。
敏感词统计与过滤系统
对文章
进行
扫描并分析,检查是否存在敏感词汇并报告出现次数。 使用图形用户界面实现。 任意选择一个文本
文件
,分析该
文件
,如果存在敏感词汇,报告每个词 出现的次数。敏感词汇保存在sentive.
txt
文件
中
,每个词占
一行
,至少设置30 个敏感词汇。系统
中
可以增加、
删除
、
修改
敏感词汇。
浅谈如何使用vector容器实现
C++
删除
或
修改
txt
文件
中
的某
一行
在
C++
中
不能直接
修改
文本
文件
的某
一行
,但是可以使用复制
文件
作为一个临时的文本,在复制过程
中
进行
修改
删除
,然后再
进行
覆盖。 可以使用一个临时的
txt
文件
,我这次主要想讲讲利用vector容器 1、在类
中
定义一个vector容器 例如 vector<class Cplusplus> CPP; 2、打开
文件
ifstream ifs; ifs.open(CPP_FILE, ios::in); 3、清空容器,防止容器
中
有内容 CPP.clear(); 4、依次将
文件
中
的.
C++ 语言
64,281
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章