在c语言编程中如何实现程序对文本文件中字符串进行替换及生成新的文本文件 在C语言编程时怎样将程序的输出结果输出到特定的文本文件中?

c\u8bed\u8a00\u7f16\u7a0b\u66ff\u6362\u6587\u4ef6\u4e2d\u5b57\u7b26\u4e32

\u65b9\u6cd5\u548c\u8be6\u7ec6\u7684\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a
1\u3001\u7b2c\u4e00\u6b65\uff0c\u4f9d\u6b21\u5355\u51fbvisual C ++ 6.0\u7684\u201c\u6587\u4ef6\u201d-->\u201c\u65b0\u5efa\u201d-->\u201c\u6587\u4ef6\u201d-->\u201cC++ Source File\u201d\u9009\u9879\uff0c\u89c1\u4e0b\u56fe\uff0c\u8f6c\u5230\u4e0b\u9762\u7684\u6b65\u9aa4\u3002



2\u3001\u7b2c\u4e8c\u6b65\uff0c\u6267\u884c\u5b8c\u4e0a\u9762\u7684\u64cd\u4f5c\u4e4b\u540e\uff0c\u5b9a\u4e49\u53d8\u91cf\uff0c\u4ee3\u7801\u89c1\u4e0b\u56fe\uff0c\u8f6c\u5230\u4e0b\u9762\u7684\u6b65\u9aa4\u3002




3\u3001\u7b2c\u4e09\u6b65\uff0c\u6267\u884c\u5b8c\u4e0a\u9762\u7684\u64cd\u4f5c\u4e4b\u540e\uff0c\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\uff0c\u4f7f\u7528getche\u51fd\u6570\u63a5\u6536\uff0c\u4ee3\u7801\u89c1\u4e0b\u56fe\uff0c\u8f6c\u5230\u4e0b\u9762\u7684\u6b65\u9aa4\u3002



4\u3001\u7b2c\u56db\u6b65\uff0c\u6267\u884c\u5b8c\u4e0a\u9762\u7684\u64cd\u4f5c\u4e4b\u540e\uff0c\u8f93\u5165\u5982\u4e0b\u4ee3\u7801\uff0c\u89c1\u4e0b\u56fe\uff0c\u8f6c\u5230\u4e0b\u9762\u7684\u6b65\u9aa4\u3002




5\u3001\u7b2c\u4e94\u6b65\uff0c\u6267\u884c\u5b8c\u4e0a\u9762\u7684\u64cd\u4f5c\u4e4b\u540e\uff0c\u518d\u8f93\u5165\u5982\u4e0b\u4ee3\u7801\uff0c\u89c1\u4e0b\u56fe\uff0c\u8f6c\u5230\u4e0b\u9762\u7684\u6b65\u9aa4\u3002



6\u3001\u7b2c\u516d\u6b65\uff0c\u6267\u884c\u5b8c\u4e0a\u9762\u7684\u64cd\u4f5c\u4e4b\u540e\uff0c\u8f93\u51fa\u6700\u7ec8\u7ed3\u679c\uff0c\u89c1\u4e0b\u56fe\u3002\u8fd9\u6837\uff0c\u5c31\u89e3\u51b3\u4e86\u8fd9\u4e2a\u95ee\u9898\u4e86\u3002



#include
main()
{
FILE *fp; /*\u5efa\u7acb\u6587\u4ef6\u6307\u9488*/
char c[10]="abcdef" ;
fp=fopen("c:\\kk.txt","w"); /*\u5c06\u6587\u4ef6\u6307\u9488\u6307\u5411C\u76d8 \u7684 kk.txt\u6587\u4ef6*/
fprintf(fp,"%s",c); /*\u5c06\u5b57\u7b26\u4e32\u5185\u5bb9\u8f93\u51fa\u5230\u6587\u4ef6\u4e2d*/
fclose(fp); /*\u5173\u95ed\u6587\u4ef6*/
}

我以前刚学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 65535
int 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;
}


  • C璇█鎬庢牱瀵鏂囦欢杩涜鎿嶄綔
    绛旓細1銆佹墦寮Sublime Text杞欢锛屾柊寤轰竴涓C璇█鏂囦欢锛岀劧鍚庡鍏璇█搴擄紝濡備笅鍥炬墍绀 2銆佹帴涓嬫潵鏂板缓C璇█鐨刴ain鍑芥暟锛屽鏂囦欢鐨勬搷浣滈兘浼氬湪main鍑芥暟涓繘琛岋紝濡備笅鍥炬墍绀 3銆佹帴涓嬫潵璋冪敤C璇█鐨刦open鍑芥暟瀵规枃浠惰繘琛屾墦寮鎿嶄綔锛屽涓嬪浘鎵绀 4銆佸綋鎵撳紑鏂囦欢浠ュ悗灏卞彲浠ラ氳繃fgetc鍑芥暟璇诲彇鏂囦欢閲岄潰鐨勫唴瀹癸紝濡備笅鍥炬墍绀 宸ュ叿/鏉...
  • 鍦╟璇█缂栫▼涓浣曞疄鐜扮▼搴忓鏂囨湰鏂囦欢涓瓧绗︿覆杩涜鏇挎崲鍙婄敓鎴愭柊鐨勬枃鏈...
    绛旓細杩欎釜C++鐨绋嬪簭涓锛屽拰C璇█鍖哄埆鐨勪富瑕佹槸鏈変簺杈撳叆鍜岃緭鍑轰笉澶竴鏍枫傝繕鏈塻ystem("pause")杩欎釜鏄皟鐢ㄧ郴缁熸殏鍋滃姛鑳斤紝鍙兘鍦═C绛夌紪璇戠幆澧冧笅涓嶈兘浣跨敤锛屽彲浠ヨ冭檻浣跨敤getch(锛夋浛鎹傝嚦浜巗ystem("cls")鏄竻灞忋傜浉鍏冲姛鑳藉嚱鏁颁负Display_text()锛宨nclude<iostream> include<fstream> include <iomanip> include<windows.h...
  • C璇█濡備綍瀹炵幇瀵璁颁簨鏈殑璇诲彇鍜屽啓鍏
    绛旓細include <stdio.h>#include <string.h>int fpread(){char a[1000] = {0};FILE *fp = fopen("C:\\Users\\Administrator\\Desktop\\1.txt", "r");if(NULL == fp){printf("failed to open dos.txt\n");return 1;} while(!feof(fp)){memset(a, 0, sizeof(a));fgets(a, size...
  • C璇█涓浣曞疄鐜鍙橀噺鍊煎埌鏂囦欢鐨勮緭鍑烘搷浣?
    绛旓細鍦–璇█涓紝杩涜鏁版嵁鐨勬枃浠舵搷浣滄椂锛屽皢绋嬪簭涓鍙橀噺鐨勫间紶閫掑埌澶栭儴鏂囦欢鐨勮繃绋嬭绉颁綔"杈撳嚭"鎴"鍐欏叆"锛岀▼搴忓憳浠範鎯у湴灏嗗叾缁熺О涓"鍐欏嚭"銆傝繖涓"璇诲彇"鎴"杈撳叆"鎿嶄綔褰㈡垚浜嗛矞鏄庡姣斻傚叿浣撴潵璇达紝"璇诲彇"鏁版嵁閫氬父閫氳繃浠ヤ笅鍑芥暟瀹炵幇锛歠scanf(鏂囦欢鎸囬拡, 鏍煎紡鎺у埗瀛楃涓, 杈撳叆椤硅〃);鎴栬呬娇鐢細fread(buffer, size,...
  • 鍦–璇█缂栫▼鏃舵庢牱灏绋嬪簭鐨勮緭鍑虹粨鏋滆緭鍑哄埌鐗瑰畾鐨勬枃鏈枃浠朵腑?
    绛旓細include<stdio.h> main(){ FILE *fp; /*寤虹珛鏂囦欢鎸囬拡*/ char c[10]="abcdef" ;fp=fopen("c:\\kk.txt","w"); /*灏嗘枃浠舵寚閽堟寚鍚慍鐩 鐨 kk.txt鏂囦欢*/ fprintf(fp,"%s",c); /*灏嗗瓧绗︿覆鍐呭杈撳嚭鍒版枃浠朵腑*/ fclose(fp); /*鍏抽棴鏂囦欢*/ } ...
  • c璇█缂栫▼
    绛旓細5. 鍐呭瓨绠$悊鑳藉姏寮猴細C璇█鍏锋湁寮哄ぇ鐨勫唴瀛樼鐞嗚兘鍔涳紝寮鍙戣呭彲浠ョ洿鎺ユ搷浣滃唴瀛橈紝杩涜鍔ㄦ佸唴瀛樺垎閰嶅拰閲婃斁锛岃繖瀵逛簬寮鍙戜竴浜涢渶瑕侀珮鏁堝唴瀛樼鐞嗙殑搴旂敤绋嬪簭闈炲父閲嶈銆傛荤殑鏉ヨ锛孋璇█鏄竴绉嶅姛鑳藉己澶с佺伒娲诲鍙樼殑缂栫▼璇█锛屽箍娉涘簲鐢ㄤ簬绯荤粺杞欢寮鍙戙佸祵鍏ュ紡绯荤粺銆佹父鎴忓紑鍙戠瓑棰嗗煙銆傜敱浜庡叾搴曞眰鎿嶄綔鎬у己锛屼篃甯歌鐢ㄤ綔瀛︿範...
  • c璇█涓紪鍐欑▼搴,杈撳叆2涓暟,瀹氫箟鍥涗釜鍑芥暟,鍒嗗埆瀹炵幇鍔犲噺涔橀櫎鍥涘垯杩愮畻...
    绛旓細鍦–璇█缂栫▼涓锛岃瀹炵幇瀵逛袱涓緭鍏ユ暟杩涜鍔犲噺涔橀櫎鐨勫洓鍒欒繍绠楋紝骞朵娇鐢ㄥ嚱鏁拌繘琛屾搷浣滐紝闇瑕佹敞鎰忛櫎娉曟椂鐨勭壒娈婂鐞嗐傞鍏堬紝鎴戜滑闇瑕佸垱寤哄洓涓嫭绔嬬殑鍑芥暟锛屽垎鍒搴斿姞銆佸噺銆佷箻銆侀櫎杩欏洓绉嶈繍绠椼備互涓嬫槸濡備綍瀹炵幇杩欎竴杩囩▼鐨勬楠わ細1銆佸畾涔変竴涓熀纭鍑芥暟锛屼緥濡俙doublecalculate(doublex,doubley,charoperation)`锛屽畠鎺ュ彈涓...
  • c璇█缂栫▼鍩虹
    绛旓細鍦–璇█涓紝绋嬪簭鍛橀渶瑕佹墜鍔ㄥ垎閰嶅拰閲婃斁鍐呭瓨锛岃繖闇瑕佷竴浜涙妧宸у拰缁忛獙銆備緥濡傦紝鍦ㄤ娇鐢ㄦ寚閽堟椂闇瑕佹敞鎰忕┖鎸囬拡鍜岄噹鎸囬拡鐨勯棶棰橈紝杩欎簺闂鐨勫嚭鐜板彲鑳戒細瀵艰嚧绋嬪簭宕╂簝鎴栬呭嚭鐜颁笉鍙鏈熺殑琛屼负銆4銆丆璇█鐨勮緭鍏/杈撳嚭鍑芥暟锛欳璇█鐨勮緭鍏/杈撳嚭鍑芥暟鍖呮嫭scanf鍜宲rintf鍑芥暟銆俿canf鍑芥暟鐢ㄤ簬浠庢爣鍑嗚緭鍏ユ祦锛堥敭鐩橈級璇诲彇鏁版嵁骞跺瓨鍌ㄥ埌鍙橀噺...
  • 濡備綍缂栧啓涓涓C璇█鐨绋嬪簭?
    绛旓細鍒涘缓涓涓柊鐨 "椤圭洰"銆傞夋嫨 C 璇█浣滀负鎮ㄧ殑椤圭洰鐨缂栫▼璇█銆傚湪缂栬緫鍣ㄤ腑缂栧啓鎮ㄧ殑 C 浠g爜銆備娇鐢ㄧ綉绔欐彁渚涚殑缂栬瘧鍣ㄧ紪璇戜唬鐮併傝繍琛屾偍鐨绋嬪簭骞舵煡鐪嬭緭鍑恒傛偍涔熷彲浠ヤ娇鐢ㄨВ閲婂櫒鏉ヨ繍琛 C 浠g爜銆備緥濡傦紝鎮ㄥ彲浠ヤ娇鐢 CINT 瑙i噴鍣ㄥ皢 C 浠g爜淇濆瓨鍦ㄦ枃鏈枃浠朵腑锛岀劧鍚庝娇鐢ㄤ互涓嬪懡浠よ繍琛屼唬鐮:cint mycode.c 浣嗘槸锛孋INT 浠...
  • 鐢–璇█缂栫▼瀹炵幇灏嗛変腑鐨勮嫢骞蹭釜鏂囦欢鐨勫唴瀹瑰鍒舵彃鍏ュ埌涓涓柊鏂囦欢new.twx...
    绛旓細include<stdio.h>#include <stdlib.h>void main(){char s[4][20] = {"d:\\data\\1.txt","d:\\data\\11.txt","d:\\data\\12.txt","d:\\data\\13.txt"};freopen("d:\\c2_4_out.txt", "a", stdout);char str[256];int i = 0;while (i<4){freopen(s[i], "r",...
  • 扩展阅读:学编程一年大概多少钱 ... c++编程适合几岁学 ... 编程一般要学多久 ... 编程必背100个代码 ... 少儿编程有必要学吗 ... 免费自学编程的app ... 初学编程必背50个 ... c十十编程要学多久 ... 吓人的编程代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网