文件管理 · 2022年8月17日

c系统文件替换|怎么用C语言对文件操作用特定内容替换其中某些内容

1. C语言文件操作问题,怎样替换文件中一行数据

C语言提供了文件操作,但是替换文件的某一行比较麻烦,下面一个参考方法,文件中存贮的内容如下所示:

2. 1、更换系统文件。将系统中c:\windows\system32\drivers 目录下的raspppoe.sys文件…

就是你系统上的这个文件以损坏,去其它电脑复制这个文件回来放回你的电脑上

3. 系统文件替换 刷新缓存 打开文件失败 C:\WINDOWS\System32\drivers\etc\Hosts , code is 5! 这是怎么回事

显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRL+ESC 打开开始菜单 CTRL+ALT+DELETE 在win9x中打开关闭程序对话框 DELETE 删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE 删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站 CTRL+N 新建一个新的文件 CTRL+O 打开“打开文件”对话框 CTRL+P 打开“打印”对话框 CTRL+S 保存当前操作的文件 CTRL+X 剪切被选择的项目到剪贴板 CTRL+INSERT 或 CTRL+C 复制被选择的项目到剪贴板 SHIFT+INSERT 或 CTRL+V 粘贴剪贴板中的内容到当前位置 ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作 ALT+SHIFT+BACKSPACE 重做上一步的操作 Windows键+M 最小化所有被打开的窗口。 Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置 Windows键+E 打开资源管理器 Windows键+F 打开“查找:所有文件”对话框 Windows键+R 打开“运行”对话框 Windows键+BREAK 打开“系统属性”对话框 Windows键+CTRL+F 打开“查找:计算机”对话框 SHIFT+F10或鼠标右击 打开当前活动项目的快捷菜单 SHIFT 在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏 ALT+F4 关闭当前应用程序 ALT+SPACEBAR 打开程序最左上角的菜单 ALT+TAB 切换当前程序 ALT+ESC 切换当前程序 ALT+ENTER 将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 PRINT SCREEN 将当前屏幕以图象方式拷贝到剪贴板 ALT+PRINT SCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板 CTRL+F4 关闭当前应用程序中的当前文本(如word中) CTRL+F6 切换到当前应用程序中的下一个文本(加shift 可以跳到前一个窗口) 在IE中: ALT+RIGHT ARROW 显示前一页(前进键) ALT+LEFT ARROW 显示后一页(后退键) CTRL+TAB 在页面上的各框架中切换(加shift反向) F5 刷新 CTRL+F5 强行刷新 目的快捷键 激活程序中的菜单栏 F10 执行菜单上相应的命令 ALT+菜单上带下划线的字母 关闭多文档界面程序中的当 前窗口 CTRL+ F4 关闭当前窗口或退出程序 ALT+ F4 复制 CTRL+ C 剪切 CTRL+ X 删除 DELETE 显示所选对话框项目的帮助 F1 显示当前窗口的系统菜单 ALT+空格键 显示所选项目的快捷菜单 SHIFT+ F10 显示“开始”菜单 CTRL+ ESC 显示多文档界面程序的系统 菜单 ALT+连字号(-) 粘贴 CTR L+ V 切换到上次使用的窗口或者 按住 ALT然后重复按TAB, 切换到另一个窗口 ALT+ TAB 撤消 CTRL+ Z 二、使用“Windows资源管理器”的快捷键 目的快捷键 如果当前选择展开了,要折 叠或者选择父文件夹左箭头 折叠所选的文件夹 NUM LOCK+负号(-) 如果当前选择折叠了,要展开 或者选择第一个子文件夹右箭头 展开当前选择下的所有文件夹 NUM LOCK+* 展开所选的文件夹 NUM LOCK+加号(+) 在左右窗格间切换 F6 三、使用 WINDOWS键 可以使用 Microsoft自然键盘或含有 Windows徽标键的其他任何兼容键盘的以下快捷键。 目的快捷键 在任务栏上的按钮间循环 WINDOWS+ TAB 显示“查找:所有文件” WINDOWS+ F 显示“查找:计算机” CTRL+ WINDOWS+ F 显示“帮助” WINDOWS+ F1 显示“运行”命令 WINDOWS+ R 显示“开始”菜单 WINDOWS 显示“系统属性”对话框 WINDOWS+ BREAK 显示“Windows资源管理器” WINDOWS+ E 最小化或还原所有窗口 WINDOWS+ D 撤消最小化所有窗口 SHIFT+ WINDOWS+ M 四、使用“我的电脑”和“Windows资源管理器”的快捷键 目的快捷键 关闭所选文件夹及其所有父文件夹按住 SHIFT键再单击“关闭按钮(仅适用于“我的电脑”) 向后移动到上一个视图 ALT+左箭头 向前移动到上一个视图 ALT+右箭头 查看上一级文件夹 BACKSPACE 五、使用对话框中的快捷键 目的快捷键 取消当前任务 ESC 如果当前控件是个按钮,要单击该按钮或者如果当前控件是个复选框,要选择或清除该复选框或者如果当前控件是个选项按钮,要单击该选项空格单击相应的命令 ALT+带下划线的字母 单击所选按钮 ENTER 在选项上向后移动 SHIFT+ TAB 在选项卡上向后移动 CTRL+ SHIFT+ TAB 在选项上向前移动 TAB 在选项卡上向前移动 CTRL+ TAB 如果在“另存为”或“打开” 对话框中选择了某文件夹, 要打开上一级文件夹 BACKSPACE 在“另存为”或“打开”对 话框中打开“保存到”或 “查阅” F4 刷新“另存为”或“打开” 对话框 F5 六、使用“桌面”、“我的电脑”和“Windows资源管理器”快捷键 选择项目时,可以使用以下快捷键。 目的快捷键 插入光盘时不用“自动播放” 功能按住 SHIFT插入 CD-ROM 复制文件按住 CTRL拖动文件 创建快捷方式按住 CTRL+SHIFT拖动文件 立即删除某项目而不将其放入 SHIFT+DELETE “回收站” 显示“查找:所有文件” F3 显示项目的快捷菜单 APPLICATION键 刷新窗口的内容 F5 重命名项目 F2 选择所有项目 CTRL+ A 查看项目的属性 ALT+ ENTER或 ALT+双击 可将 APPLICATION键用于 Microsoft自然键盘或含有 APPLICATION键的其他兼容键 七、Microsoft放大程序的快捷键 这里运用Windows徽标键和其他键的组合。 快捷键目的 Windows徽标+PRINT SCREEN将屏幕复制到剪贴板(包括鼠标光标) Windows徽标+SCROLL LOCK将屏幕复制到剪贴板(不包括鼠标光标) Windows徽标+ PAGE UP切换反色。 Windows徽标+ PAGE DOWN切换跟随鼠标光标 Windows徽标+向上箭头增加放大率 Windows徽标+向下箭头减小放大率 八、使用辅助选项快捷键 目的快捷键 切换筛选键开关右SHIFT八秒 切换高对比度开关左ALT+左SHIFT+PRINT SCREEN 切换鼠标键开关左ALT+左SHIFT+NUM LOCK 切换粘滞键开关 SHIFT键五次 切换切换键开关 NUM LOCK五秒

4. 怎样用一个文件替换一个文件 。。系统文件

,说是用openiv打开:grandtheftautoiv\pc\models\c…答:点击“editmore”,然后它弹出一个框,点“yes”,再点有一个绿色的加号的东西,那就是增加或导入如果你选择的文件的名与img里的相同,他会替换,

5. 在c语言编程中如何实现程序对文本文件中字符串进行替换及生成新的文本文件

我以前刚学C++的时候写过一个相似的程序,如果你要的是纯C语言下的编程,那么你就参考一下,这个算法的原理是一样的,即读入一个字符就显示出来。当然你也可以考虑其他实现方式。这个C++的程序中,和C语言区别的主要是有些输入和输出不太一样。还有system("pause")这个是调用系统暂停功能,可能在TC等编译环境下不能使用,可以考虑使用getch()替换。至于system("cls")是清屏。相关功能函数为Display_text(),#include<iostream>#include<fstream>#include <iomanip>#include<windows.h>using namespace std;#define MaxSize 65535int tag[100]; //匹配关键字的字符下标,设定最多找到100个关键字typedef struct{ char data[MaxSize]; //记录字符值 int len; //保存有效字符串长度}SqString;void MainMenu(); //显示主菜单void Select_function(char op); //功能选择void Display_text(); //显示本文内容void Count_ch(); //统计字符数,空格数,行数void Search_KeyWord(); //检索关键字void Replace_KeyWord(); //替换关键字void index(SqString s,SqString t); //简单匹配算法(BF)void SetColor(unsigned short ForeColor,unsigned short BackGroundColor); //颜色函数int main(){ MainMenu(); return 0;}void MainMenu() //显示主菜单{ char op; cout<<"I——打开文本文件\n"; cout<<"T——统计\n"; cout<<"S——检索\n"; cout<<"R——替换\n"; cout<<"Q——退出\n\n"; cout<<"请选择:"; cin>>op; Select_function(op);}void Select_function(char op) //功能选择{ switch(op) { case 'i': case 'I':Display_text();break; case 't': case 'T':Count_ch();break; case 's': case 'S':Search_KeyWord();break; case 'r': case 'R':Replace_KeyWord();break; case 'q': case 'Q':exit(0); default:cout<<"输入错误,请重新选择"<<endl; system("pause");system("cls"); MainMenu(); break; }}void Display_text() //显示本文内容{ int i=0; char c,ch[150]; cout<<"请输入文件名:"<<endl; cin>>ch; system("cls"); ifstream infile; infile.open(ch,ios::in); if(!infile) { cerr<<"Open file error!"<<endl; system("pause");system("cls"); MainMenu(); } while(infile.get(c)) { cout<<c; i++; if(i>=1000&&c=='\n'||i>=1500) { cout<<endl<<endl; system("pause");system("cls"); i=0; } } infile.close(); SetColor(11,8); cout<<endl<<"文本内容结束!"<<endl; SetColor(7,0); system("pause");system("cls"); MainMenu();}void Count_ch() //统计字符数,空格数,段落数{ int i=0,j=0,k=0; char c,ch[150]; cout<<"请输入文件名:"<<endl; cin>>ch; system("cls"); ifstream infile; infile.open(ch,ios::in); if(!infile) { cerr<<"Open file error!"<<endl; system("pause");system("cls"); MainMenu(); } while(infile.get(c)) { i++; if(c==' ')j++; if(c=='\n')k++; } infile.close(); SetColor(11,8); cout<<"字符数:"<<i<<endl; cout<<"空字符数"<<j<<endl; cout<<"段落数(回车次数)"<<k<<endl; SetColor(7,0); system("pause");system("cls"); MainMenu();}void Search_KeyWord() //检索关键字{ int i=0,j=0,k=0; char c,ch[150],kw[50]; SqString s,t; cout<<"请输入文件名:"<<endl; cin>>ch; system("cls"); ifstream infile; infile.open(ch,ios::in); if(!infile) { cerr<<"Open file error!"<<endl; system("pause");system("cls"); MainMenu(); } cout<<"请输入关键字:"; cin>>kw; cout<<endl; while(infile.get(c)&&i<MaxSize) { s.data[i]=c;i++; } s.len=i; infile.close(); for(i=0;kw[i]!='\0';i++) t.data[i]=kw[i]; t.len=i; index(s,t); if(tag[0]==-1)cout<<"无此关键字"<<endl; else { for(i=0;i<=s.len;i++) { if(i==tag[j]) { for(;i<tag[j]+t.len;i++) { SetColor(10,8); cout<<s.data[i]; SetColor(7,0); } j++; } else cout<<s.data[i]; k++; if(k>=1500&&s.data[i]=='\n'||k>=2000) { cout<<endl<<endl; system("pause");system("cls"); k=0; } } SetColor(11,8); cout<<endl<<endl<<"文本内容结束!"<<endl; SetColor(7,0); } system("pause");system("cls"); MainMenu();}void Replace_KeyWord() //替换关键字{ int i=0,j=0,k=0; char c,ch[150],kw[50],nkw[50]; SqString s,t,nt; cout<<"请输入文件名:"<<endl; cin>>ch; system("cls"); ifstream infile; infile.open(ch,ios::in); if(!infile) { cerr<<"Open file error!"<<endl; system("pause");system("cls"); MainMenu(); } cout<<"请输入关键字:"; cin>>kw; cout<<endl; while(infile.get(c)&&i<MaxSize) { s.data[i]=c;i++; } s.len=i; infile.close(); for(i=0;kw[i]!='\0';i++) t.data[i]=kw[i]; t.len=i; index(s,t); if(tag[0]==-1)cout<<"无此关键字"<<endl; else { cout<<"请输入新的字符替代原关键字:"<<endl; cin>>nkw; for(i=0;nkw[i]!='\0';i++) nt.data[i]=nkw[i]; nt.len=i;for(i=0;i<=s.len;i++) { if(i==tag[j]) { for(int n=0;i<tag[j]+nt.len;i++,n++) { s.data[i]=nt.data[n]; SetColor(10,8); cout<<s.data[i]; SetColor(7,0); } j++; } else cout<<s.data[i]; k++; if(k>=1500&&s.data[i]=='\n'||k>=2000) { cout<<endl<<endl; system("pause");system("cls"); k=0; } }SetColor(11,8); cout<<endl<<endl<<"文本内容结束!"<<endl; SetColor(7,0); } fstream outfile(ch,ios::out); if(!outfile) { cerr<<"Open file error!"<<endl; system("pause");system("cls"); MainMenu(); } for(i=0;i<=s.len;i++) { outfile<<s.data[i]; } outfile.close(); system("pause");system("cls"); MainMenu();}void SetColor(unsigned short ForeColor,unsigned short BackGroundColor) //颜色函数{ HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));}void index(SqString s,SqString t) //简单匹配算法(BF){ int i=0,j=0,k=0;h0: while(i<s.len&&j<t.len) { if(s.data[i]==t.data[j]) { i++;j++; } else { i=i-j+1;j=0; } } while(j>=t.len) { tag[k]=i-t.len; k++; i++;j=0; goto h0; } if(k==0)tag[0]=-1;}

6. 怎么用C语言对文件操作用特定内容替换其中某些内容

如果复只想修改文件一部分。可以制使用函数int fseek( FILE *stream, long offset, int origin );来定位你的文件指针。文件指针的位置决定你读写文件的起始位置。其中参数origin :表示从哪里开始偏移,值有:SEEK_SET: 文件开头SEEK_CUR: 当前位置SEEK_END: 文件结尾参数offset:表示偏移的字节数,正数表示正向偏移,负数表示负向偏移。比如你先读取文件内容,同时做判断,找到你要改的内容时,调用函数fseek(fp,10L,SEEK_CUR);把文件指针移动到离当前指针位置10个字节的地方(我们假设当前位置偏移10个字节就是你要修改的起始位置);这样你之后的读写都是从这个位置开始。不过要注意的是,你从这位置开始写新的内容,可以覆盖原内容,所以如果新的内容比你想覆盖的内容长的话,会把后面你想保留的内容也覆盖掉。这种思路,你想要实现修改指定内容,还需要把修改内容之后的数据也读出来备份,再一起写进去。所以最简单,还是直接生成新的文件替换原文件。

7. C语言文件中字符串的查找与替换

#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>voidSubstitute(char*pInput,char*pOutput,char*pSrc,char*pDst){char*pi,*po,*p;intnSrcLen,nDstLen,nLen;//指向输入字符串的游动指针.pi=pInput;//指向输出字符串的游动指针.po=pOutput;//计算被替换串和替换串的长度.nSrcLen=strlen(pSrc);nDstLen=strlen(pDst);//查找pi指向字符串中第一次出现替换串的位置,并返回指针(找不到则返回null).p=strstr(pi,pSrc);if(p){//找到.while(p){//计算被替换串前边字符串的长度.nLen=(int)(p-pi);//复制到输出字符串.memcpy(po,pi,nLen);memcpy(po+nLen,pDst,nDstLen);//跳过被替换串.pi=p+nSrcLen;//调整指向输出串的指针位置.po=po+nLen+nDstLen;//继续查找.p=strstr(pi,pSrc);}//复制剩余字符串.strcpy(po,pi);}else{//没有找到则原样复制.strcpy(po,pi);}}intmain(intac,char*av[]){if(ac!=5){printf("程序名要操作的文件新文件查找的字符串替换的字符串
");printf("示例:test.exe1.txt2.txthellolove
");return0;}constintMAXSIZES=100;FILE*fpSrc,*fpDes;charfilename1[20]="1.txt";charfilename2[20]="2.txt";//要求查找的字符串,替换的字符串;charps[]="hello";charpd[]="love";//求取所查找和替换的字符串的长度;intlen_src=strlen(av[3]);intlen_des=strlen(av[4]);//定义存储字符串缓冲区;很奇怪的一点是,fgets函数不能将字符串写入动态分配的内存中/*char*Src_buf=(char*)(sizeof(char)*MAXSIZES);char*Cpy_buf=(char*)(sizeof(char)*MAXSIZES);char*Des_buf=(char*)(sizeof(char)*MAXSIZES);*/charSrc_buf[MAXSIZES]={0};charCpy_buf[MAXSIZES]={0};charDes_buf[MAXSIZES]={0};//打开文件if((fpSrc=fopen(av[1],"r+"))==NULL){printf("failtoopenthefile1!
");exit(1);}if((fpDes=fopen(av[2],"a+"))==NULL){printf("failtoopenthefile2!
");exit(1);}//进行循环读取while(!feof(fpSrc))//判断文件是否已结束;!feof(fpSrc){fgets(Src_buf,MAXSIZES,fpSrc);Substitute(Src_buf,Des_buf,av[3],av[4]);fputs(Des_buf,fpDes);printf("%s",Des_buf);}fclose(fpSrc);fclose(fpDes);system("pause");return0;}

说明:使用c标准为中的文件I/O函数一般是不推荐的,做为练习可以学习,真正用的最多的是内存文件映射。那要比用I/O函数读来读取方便的多,限制也会更小。

8. 电脑系统文件可以用别的电脑里的文件替换吗

你可以用U盘pe到C:\Windows\System32\config\RegBack这个文件夹会备份一个system文件,把备份的system文件复制到config里,就可以正常开机了。如果没有备份的话那么比较麻烦,只能重做系统了。或者进入U盘pe,用DG软件搜索删除的文件。

9. 如何替换C:\Windows\System32\drivers里面的sdstor.sys

右键需要改的文件,打开“属性”选择“安全” 最后点击下边的“高级”。

最后就可以把系统的源文件替换。

温馨提示:替换文件前建议提前备份,如果出错也可以替换回去避免损失。

10. 怎样用c语言把文本文档.txt里特定的内容根据内容替换掉

由于操作系统对文件操作做了封装,本来很容易的事情变得很难了。修改文件最好的,最简单的方法,是新建一个文件,把修改部分前面的,先写入新文件,然后写入修改的部分,再把后一部分没有修改的,写到新文件中去。然后文件重命名。原文件改名备份文件,新文件改名原文件。如果修改的数据很少N~100N KB,N~10N MB 可以用缓冲区处理好修改,再写入文件。FILE× fopenfseekfwritefclosePS:1)如果修改的内容,和原文件被修改的数据,字节数完全相同,直接找到要修改的地方,写入新内容就可以了。2)如果修改后的内容,和原文件被修改的数据,字节数不同,建议新建一个文件,否则很麻烦,要用读写方式打开。 a) 如果修改后数据增加,把修改数据后的所有数据向后移动,给修改的数据腾地方。 b) 如果减少,要把所有数据前移,然后修改文件长度。