前言
在CSDN等网站上我们复制了代码总会遇到这样的情况,前面加了一个行号及一个点。
处理方法是有,在编辑器里面按住alt然后拖动就能够删除行号及那个点了,然而,我们也可以自己制作工具去删除那个行号和那个点
方法思路
把复制的代码放进记事本里面,然后它里面每行前几个都是行号加代码,利用文件读取,读取每行进字符串里面,然后再查找每行,找到.的位置对字符串进行相应处理然后再写进文件即可
附上相关代码
我是把需要去除行号的文本放在d盘下,其名称为 文件.txt
#include <iostream>
#include <fstream>
#include <string>
#define len 100
using namespace std;
struct file{
char s[len];//这个结构里面存储每行的字符串
int value; //存储行号
}F[1000];
void CutLine(struct file *F,int count){//去除行号
for(int i=1;i<count;i++){
for(int j=0;j<100;j++){
if(F[i].s[j]=='.'){ //找到.的位置然后将字符串覆盖掉
for(int k=j+1;k<100;k++){
F[i].s[k-(j+1)] =F[i].s[k];
}
}
}
}
fstream f1("d:\\文件.txt",ios::out);
if(!f1) cout<<"mistake";
for(i=1;i<count;i++){
f1<<F[i].s<<endl;
}
f1.close();
}
void AddLine(struct file *F,int count){//加上行号和.(只要主函数里面打开的是没有行号和点的文件即可)
fstream f("d:\\添加行号的文件文件.txt",ios::out);
for(int i=1;i<count;i++){
f<<F[i].value<<". "<<F[i].s<<endl;
}
f.close();
}
int main()
{
int count=1;
//下面代码会把文件每行内容读入内存
fstream f("d:\\文件.txt",ios::in |ios::out);
if(!f){cout<<"mistake";}
while(!f.eof()){
f.getline(F[count].s,len);
F[count].value=count;
count++;
}
f.close();
CutLine(F,count);//去除行号
return 0;
}
附上程序运行结果截图:
运行前:
运行后: