C++为了删除文件末尾的空行花了我一晚上,分享出来给大家节省时间
同学用Java删的特别快就写了短短几行
//头文件和命名空间 #include#include #include #include using namespace std;
fstream outTxt;
outTxt.open("output.txt", ios::binary | ios::out | ios::in);
if (!outTxt.is_open())//文件打开失败异常处理
{
cout << "output文件打开失败!";
exit(1);
}
int min, max;
min = outTxt.tellg();
outTxt.seekg(0, ios::end);
max = outTxt.tellg();//得到文件长度
outTxt.close();
if ((max - min) > 2)//文件有足够位置修改
{
FILE* fp = fopen("output.txt", "rt+");
int fno = _fileno(fp);//获取与流关联的文件描述符
_chsize_s(fno, max - min - 2);//截取文件到指定长度,"n"的字节数为2
fclose(fp);
}
在此感谢在求知过程中搜索到的对我很有价值的文章的撰写者,并附上他们的文章链接
微软的官方文档
该文章下名为“太乙”的用户
C++ 修改/覆盖指定位置的文件内容或者从某个位置开始截断文件
C语言 打开文件时改变文件大小



