c++効率的なテキスト読み書き

5844 ワード

データ构造の授业を受けて、projectをして、データの先生は私达に多くテストをするように要求して、テキストのファイルは有効にこれらを记录することができて、このように私はファイルの読み書きを思い出して、次はかすの私の个人的ないくつかの考えで、大神达は间违っていることを见て、指摘します(orz~~~囧、木は私のああを见る人がいます).
テストデータが多い場合、コマンドラインにはテストデータがすべて表示されないことが多いため、テキストファイルにエクスポートする必要があります.
簡単な例を次に示します.
 1 #include <iostream>

 2 #include <fstream>

 3 using namespace std;

 4 

 5 int main() {

 6     ofstream cout;

 7     cout.open("out.txt");

 8     

 9     cout << "hello world" << endl;

10     

11     cout.close(); 

12     return 0;

13 } 

しかし、ここで欠点として、ファイルを閉じて再びファイルにデータをインポートすると、前のデータが複数上書きされることがある.cppファイルがデータを繰り返しエクスポートする場合は致命的です.これは最後にエクスポートした結果しか見えないため、中間のプロセスを無視します.次のファイルデータエクスポートは、上書きせずにファイルにデータを効率的にエクスポートすることができます.
具体的なコードは以下の通りです.
 1 #include <iostream>

 2 #include <fstream>

 3 using namespace std;

 4 

 5 int main() {

 6     ofstream cout;

 7     cout.open("out.txt", ostream::app);

 8     

 9     cout << "hello world" << endl;

10     

11     cout.close(); 

12     return 0;

13 } 

データの書き出しを言った以上、簡単にデータの導入について話しましょう(実は私がよく知らないだけorz~~~囧).さっきの2つのコードが同じディレクトリで実行すると、同じディレクトリの下でoutが生成されます.txtファイル、そしてファイルに同じ「hello world」が2行あるので、このファイルでファイルのインポートをインスタンスしましょう.具体的なコードは以下の通りです.
 1 #include <iostream>

 2 #include <fstream>

 3 using namespace std;

 4 

 5 int main() {

 6     ifstream cin;

 7     cin.open("out.txt");

 8     string str[2];    //     hello world

 9     for (int i = 0; i < 2; i++)

10         getline(cin, str[i]);    //        

11     for (int i = 0; i < 2; i++)

12         cout << str[i] << endl;  //        

13 

14     cin.close();

15     return 0;

16 }

PS.どうして私はずっと导入を使って导いて、これらを読み書きしないで、(⊙o⊙)...英语の読み書きという言叶は私はいつも混同して、导入を导入してよく理解して、hhhhhhhh~~味噌紫になりました.