0

このプログラムは、何かをテキスト ファイルに出力します。行数が30を超えたときにテキストファイルの内容を消去したいのですが、テキストファイル内で再び印刷を開始する必要があります。

void GPSCallback(const gps_common::GPSFix::ConstPtr& msg)
{
    std::ofstream output;
    output.open("file1.txt",std::ios_base::app);
    output<<"\n"<<msg->latitude<<","<<msg->longitude;
    output.close();
    usleep(10000000);
}
4

3 に答える 3

1

呼び出している関数で次のようなカウンターを使用できますGPSCallback

if(++count < 30)
    GPSCallback(msg);
 else{
   count =0;
   std::ofstream output;
   output.open("file1.txt");
   output.close();
   GPSCallback(msg);
 }
于 2013-09-06T11:03:21.770 に答える
0

30 行の制限に達すると、seekp を使用してポインタをファイルの先頭にリセットできます。これにより、ファイルの内容は削除されませんが、上書きされます。

于 2013-09-06T11:37:02.313 に答える