1

プログラムを再起動するたびにデータを使用できるようにすることを楽しみにしています。プログラムに読み戻すよりも、ファイルに保存する最良の方法はどれか知りたいです。私はインターネットでいくつかのものを読んでいますが、大きな問題は XML またはバイナリ形式ですか? 私はまだC ++を学んでいますが、それを習得していません。プログラムのオブジェクトは次のタイプstring int intです...どの方法を使用することをお勧めしますか?またその理由は?

もう1つ、これに関する優れたチュートリアルを知っている人はいますto binaryto XML?

コードの一部が欠けていて申し訳ありませんが、私よりも上級のプログラマーの意見を知りたかったのです。:P

4

3 に答える 3

3

私は同意しない。利用可能なオプションはたくさんあります。ここでもう2つ名前を付けます:1)独自のWebサイトを持つjsonというファイル形式を探すことができます(私たちの中にはそうしない人もいます)。軽量のデータ交換フォーマットであると主張しています。2)csvというファイル形式があります。その使用法は、ここでstackoverflowですでに説明されています

于 2012-05-22T12:36:40.473 に答える
3

Matthaisのコメントに加えて:

私はあなたの場合、最も明白なフォーマットが正しいと思います、そしてそれは単なるテキストです。

データをプレーンテキストでシリアル化するだけです(多くの場合、スペースで区切られます)。PTの利点は、人間が判読可能で、人間が変更可能で、ストリームを使用して処理しやすく(>>トークン化またはブーストトークン化機能)、柔軟性があり、XMLよりもはるかに軽量であることです。

たとえば、保存することができます

struct {
    std::string name;
    int age;
    double height;
};

あなたはただ書くでしょう:

John 21 5.4
Bill 31 4.9

またはあなたが持っているものは何でも。これは常に便利です。たとえば、名前には2つの単語を含めることができます。

John Smith

そして、tokeniserはスペースで分割し、smithをintとして解析しようとしますが、これは区切り文字を使用して修正するのは簡単な問題です。そのような ""

于 2012-05-22T12:43:45.450 に答える
2

プロセスが途中で強制終了された場合でも (たとえば、停電、ハードウェア障害、またはコード自体の深刻なバグが原因で) 堅牢な動作が必要ですか?

その場合は、SQLite や MS SQL Server Compact (など) などの「組み込み」データベースを検討してください。これらのシステムのトランザクションの性質により、後でプログラムが正しく起動できなくなるようなデータの破損を防ぐことができます。

また、一部のファイル システムはトランザクションをサポートしています (たとえば、Windows Vista 以降のトランザクション NTFS)。

于 2012-05-22T12:45:33.423 に答える