如何样删除txt文件的第一行

怎么样删除txt文件的第一行?
怎么样删除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.这个能成么?

buffer << in.rdbuf();//这句啥意思,rdbuf()是啥意思,我接触c++比较少 

vc6, 你怎么还在跟恐龙打交道啊?
我也不清楚vc6成不成,从来没用过这个史前遗物

rdbuf的细节我也不是很清楚,只知道每个stream object低下都会管理一个buffer
rdbuf让你把那个buffer拿回来
而operator << 经过overload后,会把buffer里面的资料全都吐出来

如果你对性能的要求不高,这个方法就足够应付了
------解决方案--------------------
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。

------解决方案--------------------
效率高的方法:可以考虑将第一行的内容全部覆盖修改为空格,如果这样也算删除了第一行内容的话。