c语言-关于 C语言 文件 添加字符问题

问题描述

关于 C语言 文件 添加字符问题

c语言 文件 字符串添加,或替换,或修改

有a.txt内容为
a=1
x!=22
b=333
d=4444

现在要将要a.txt的内容改为
a=100
b=2
c=3
d=4444

即是:
1.在1后面添加00
2.删除第二行
3.删除第三行的后两个3
4.添加一行c=3

要求:
1.直接在原文件上进行修改,不能是用另一个文件来替换掉a.txt

这个直接在原文件中实现添加,我真写不出来代码,

我是以“rw+”的方式打开a.txt的,发现fputs()只能实现替换原字符,不能是添加字符(把后面的文字替换掉了),除非是在文件最后添加内容,在文件中间实现添加,我不知道怎么写代码???
因为fputs等一些函数好像只能替换掉当前文件指针所指的内容。

诚请教如何用c代码实现上面的编程???

解决方案

这么久都没人回答,因为这个问题无解!本身硬盘的文件系统就不能做到在文件中间插入内容,因为本身文件内容的储存是连续的,要讲abdef变成abcdef只能通常在把d替换为c,然后讲def复制到c后面!文件系统又不是链表,和数组类似!数组的插入只能复制插入位置后面的内容。至于题目要求,题目说要为源文件修改,不代表就不能采用复制的方式进行插入!至于删除,和增加,同理。

时间: 2024-11-30 18:00:29

c语言-关于 C语言 文件 添加字符问题的相关文章

c语言-如何将一串十六进制字符使用C语言写到.pcap文件并使用wireshark打开

问题描述 如何将一串十六进制字符使用C语言写到.pcap文件并使用wireshark打开 提示数据包过大怎么回事 例如将下面这一个网络抓取的数据包的十六进制字符串写进.pcap文件. BE 03 00 00 40 00 00 00 AC 23 00 00 A4 09 00 00 30 DD 19 1F 41 CB D0 01 6E 00 D6 2E 29 47 09 46 B4 23 3E E7 BC D6 78 EF E9 03 00 10 04 00 00 00 01 00 00 C0 02

指针-C语言程序用fputc函数写入字符到建立的文件中,程序运行正常,可是资源管理器里找不到建立的新文件?

问题描述 C语言程序用fputc函数写入字符到建立的文件中,程序运行正常,可是资源管理器里找不到建立的新文件? //怎样向文件读写字符 #include #include int main() { FILE * fp;//定义指向文件的指针 char ch,filename[10];//ch代表输入的字符变量,filename代表文件名 printf("请输入所用的文件名:"); scanf("%s",filename);//输入文件名 if((fp = fopen

qt-Qt语言家的使用.ts文件添加新的需翻译的字符串

问题描述 Qt语言家的使用.ts文件添加新的需翻译的字符串 刚开始学习Qt的翻译部分,Qt语言家是把需要翻译的字符串提取成.ts文件,如果我后期重新添加了要翻译的字符串,我应该怎么做呢,是重新翻译一遍吗,因为翻译的东西太多,重新翻译的话可能太麻烦,所以有没有比较好的办法呢.谢谢!!! 解决方案 突然发现qt的功能挺强大的,无论你以后添加或删除字符串,只要lupdate一下,就会刷新字符串了.

让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码           在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法.   1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const ch

豆瓣-关于C语言按行读取文件,读取其中数字,挨个转换成doube类型,存入数组

问题描述 关于C语言按行读取文件,读取其中数字,挨个转换成doube类型,存入数组 int main() { FILE *fp; char buffer[50]; char filename[50]; int bufferLen; int i; int j = 0; char c; double c_number[50]; printf("Input file name: "); scanf("%s", filename); if((fp = fopen(filen

C语言按关键字搜索文件夹中文件的方法_C 语言

本文实例讲述了C语言按关键字搜索文件夹中文件的方法.分享给大家供大家参考.具体实现方法如下: 方法1: #include<iostream> #include<string> #include<io.h> using namespace std; void filesearch(string path,string mode) { struct _finddata_t filefind; if(path[path.size()-1]=='\\') path.resize

Win7英文版系统任务栏右下角语言栏不见了如何添加

  Win7英文版系统任务栏右下角语言栏不见了如何添加            具体步骤: 1.点击开始菜单,点击"Control Panel"; 2.在右上角"View by"下拉菜单中选择"Category",在下面点击"Clock,Language,and Region"; 3.点击"Change keyboards or other input methoos"; 4.切换到"keyboar

一个关于C语言scanf,和文件读写的问题

问题描述 一个关于C语言scanf,和文件读写的问题 下面这段程序出了点问题void input()中无法对char i进行赋值,就是这句 scanf("%c",&i);在下面已被标出,在运行时会被跳过,我总是看不出什么毛病,想求您给看一眼: 另外还有个问题,这个函数void search()//查询学生成绩有个毛病,也已标出,请老师给看一下. #include"stdio.h" #include"string.h" #include&q

vc-数据结构(c语言)自定义头文件打不开

问题描述 数据结构(c语言)自定义头文件打不开 在vc6.0里面自定义了头文件 #include ""SqList.h"" 然后显示错误D:vc6Microsoft Visual StudioMyProjectscplusshiyabn.cpp(4) : fatal error C1083: Cannot open include file: 'SqList.h': No such file or directory 怎么破? 解决方案 路径不对,用<>