您的位置:首页 > 其它

工具:去除文件的行号

2015-09-07 23:40 246 查看

前言

在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;
}


附上程序运行结果截图:

运行前:


运行后:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: