昨天Z姐从网上下了一大篇的考试卷子去打印,发现其中多余空行实在太多,于是突然想起我是学计算机的(我无语,其实,我还真不是计算机系的,只是有点挂钩。于是乎,各位大哥大姐们把我就当成了义务的电脑维修工.....惨啊..),直接QQ给我,我打开一看,汗啊,怎么搞啊? 以前没弄过,于是想着调节行间间距,结果弄了一整天硬是没给弄好.... 当时那个尴尬啊... 我无语,Z姐生气.....
于是,就今天起来就准备把这个问题用咱们的C++来弄弄....结果一上午的奋战,终于见到了眉头....
废话不多说了,代码注释如下: 大家自己看吧....
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int l;
bool m;
vector<string>a;
char filename[100];
char suffix[5]=".txt"; //txt文本的后缀词
string s,s1;
cout<<"输入要切割的文件名"<<endl;
cin.getline(filename,100);
l=strlen(filename);
if(filename[l-3]!='.'||filename[l-2]!='t'||filename[l-3]!='x'
||filename[l]!='t')
{ strcat(filename,suffix); }
ifstream infile;
infile.open(filename);
ofstream out("copyfile.txt");
if(!infile)
{
cout<<"错误:找不到指定文件"<<endl;
cout<<"请将目标文件复制到本程序的目录下"<<endl;
system("PAUSE");//系统命令 屏幕暂停
exit(1); //退出
}
cout<<"正在读取文件,请稍后..."<<endl;
while(!infile.eof())
{
getline(infile,s);
m=s.empty(); //判断是否为空行
if(m!=true)
a.push_back(s);//如果不是空行,将这一行字符添加到向量尾
}
for(int i=0;i<a.size();i++)
{ out<<a[i]<<endl;} //输出向量中的字符到新文件
if(!out)
{
cout<<"error,please retry"<<endl;
exit(2);
}
infile.close();//关闭文件
cout<<"恭喜,所有空行删除成功!"<<endl;
return 0;
}
呵呵 最后再在网上一搜,其实这个问题word里有解决方案的..... 那个汗啊......
不过话说回来,这个纯属学习用....
程序还有不足之处,望大家不吝赐教....!