如何样删除txt文件的第一行
怎么样删除txt文件的第一行?
怎么样删除txt文件的第一行?
打开txt文件,删除第一行,完后保存,行不行?
------解决方案--------------------
c++98 and c++11
这段代码省略了错误检查,自己加上去吧
此外,这段代码也不具备可复用性
比较理想的API应该是
c++11的fstream家族支援std::string作为constructor的参数
提供char const *为界面为的是有时候可以省下动态construct string的开销
------解决方案--------------------
c++的file操作我懂的不多,有任何错误欢迎指正
------解决方案--------------------
vc6, 你怎么还在跟恐龙打交道啊?
我也不清楚vc6成不成,从来没用过这个史前遗物
rdbuf的细节我也不是很清楚,只知道每个stream object低下都会管理一个buffer
rdbuf让你把那个buffer拿回来
而operator << 经过overload后,会把buffer里面的资料全都吐出来
如果你对性能的要求不高,这个方法就足够应付了
------解决方案--------------------
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
------解决方案--------------------
效率高的方法:可以考虑将第一行的内容全部覆盖修改为空格,如果这样也算删除了第一行内容的话。
怎么样删除txt文件的第一行?
打开txt文件,删除第一行,完后保存,行不行?
------解决方案--------------------
c++98 and c++11
#include <fstream>
#include <iostream>
#include <string>
int main()
{
std::ifstream in("in");
std::string head;
std::getline(in, head);
std::ostringstream buffer;
buffer << in.rdbuf();
in.close();
std::ofstream out("in");
out << buffer.str();
return 0;
}
这段代码省略了错误检查,自己加上去吧
此外,这段代码也不具备可复用性
比较理想的API应该是
bool erase_nth_line(char const *name, size_t line)
{
//.......实做
}
inline bool erase_nth_line(std::string const &name, size_t line)
{
erase_nth_line(name, line);
}
c++11的fstream家族支援std::string作为constructor的参数
提供char const *为界面为的是有时候可以省下动态construct string的开销
------解决方案--------------------
c++的file操作我懂的不多,有任何错误欢迎指正
------解决方案--------------------
vc6, 你怎么还在跟恐龙打交道啊?
我也不清楚vc6成不成,从来没用过这个史前遗物
rdbuf的细节我也不是很清楚,只知道每个stream object低下都会管理一个buffer
rdbuf让你把那个buffer拿回来
而operator << 经过overload后,会把buffer里面的资料全都吐出来
如果你对性能的要求不高,这个方法就足够应付了
------解决方案--------------------
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
------解决方案--------------------
效率高的方法:可以考虑将第一行的内容全部覆盖修改为空格,如果这样也算删除了第一行内容的话。