工具:去除檔案的行號
阿新 • • 發佈:2019-01-22
前言
在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;
}
附上程式執行結果截圖:
執行前:
執行後: