C では、テキスト ファイルの処理が非常に重要です。これは、ほとんどのプログラムが、ディスクに保存されているデータ ファイルの読み取りや、ファイル内のデータの変換など、外部ファイルとの入出力を実行する必要があるためです。プログラムはファイルに保存されます。そこで今回はC言語でテキストファイルを入出力に使う方法を紹介します。
1. テキスト ファイルのオープンとクローズ
C では、ファイルの読み取りと書き込みにはファイル ストリーム クラス オブジェクト (fstream) を使用する必要があります。ファイルを使用する前に、ファイル ストリーム オブジェクトを作成し、それをファイルに関連付ける必要があります。ファイル ストリーム オブジェクトのコンストラクターは、ファイル名と開くメソッドをパラメーターとして受け入れることができます。 C には、ファイルを開く一般的な方法が 3 つあります。
次は、ファイルを開く方法を示す簡単な例です:
#include <fstream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 文件操作 // 关闭文件 file.close(); return 0; }
上記のコードでは、fstream クラスのコンストラクターを通じて file という名前のファイル ストリーム オブジェクトが作成されます。そして、それをファイル example.txt に関連付けます。ファイルを開くときは、読み取りと書き込みの両方が可能なメソッドが使用されます。つまり、ファイルを読み取る必要がある場合は ios::in オプションを使用する必要があり、ファイルを書き込む必要がある場合は ios::out オプションを使用する必要があり、コンテンツを追加する必要がある場合は ios::out オプションを使用する必要があります。ファイルの最後では、ios ::appoptions を使用する必要があります。便宜上、ここでは読み取り可能なメソッドと書き込み可能なメソッドの両方が使用されます。
ファイル操作が完了したら、ファイルを閉じる必要があります。これは、ファイル ストリーム オブジェクトの close() 関数を通じて実現できます。
2. ファイルからのデータの読み取り
テキスト ファイルを開いた後、ファイル入力ストリーム オブジェクト (ifstream) を使用してテキスト ファイルからデータを読み取ることができます。 C には、次のようなファイルからデータを読み取るさまざまなメソッドが用意されています。
オペレーター: ファイルから単語または値を読み取ります。
次は、ファイルからデータを読み取る方法を示す簡単な例です:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ifstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 读取文件内容 string str; while (getline(file, str)) { cout << str << endl; } // 关闭文件 file.close(); return 0; }
上記のコードでは、file という名前の入力ファイル ストリーム オブジェクトを作成し、それを関連付けます。ファイル example.txt にコピーします。 while ループでは、getline() 関数を呼び出すことによってファイルの内容が 1 行ずつ読み取られ、データの各行が文字列変数 str に格納されます。最後に、読み取った内容が cout を通じて出力されます。
3. ファイルへのデータの書き込み
C では、ファイル出力ストリーム オブジェクト (ofstream) を使用して、データをテキスト ファイルに書き込むことができます。一般的に使用される書き込み関数には次のものがあります:
次は、データをファイルに書き込む方法を示す簡単な例です:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ofstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 向文件中写入数据 for (int i = 1; i <= 10; i++) { file << "This is line " << i << endl; } // 关闭文件 file.close(); return 0; }
上記のコードでは、file という名前の出力ファイル ストリーム オブジェクトを作成し、それを関連付けます。ファイル example.txt にコピーします。 for ループでは、データは
4. ファイル ポインター
ファイル操作を実行するときは、ポインターを使用して現在のファイルの読み取りおよび書き込み場所を示す必要があります。ファイル ポインターは、ファイル位置インジケーターとも呼ばれ、ファイルの先頭から現在の位置までのバイト数を記録する、各ファイルによって維持される内部変数です。
C には、ファイル ポインタを操作するための以下の関数が用意されています。
次は、ファイル ポインターの操作方法を示す簡単な例です。
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 获取、设置文件指针位置 file.seekp(6); // 将文件写位置设置为6 file.put('X'); // 在文件位置6处写入字符'X' file.seekg(0); // 将文件读位置设置为0 char ch = file.get(); // 从文件位置0读取一个字符 cout << "第一个字符是:" << ch << endl; // 关闭文件 file.close(); return 0; }
上記のコードでは、file という名前のファイル ストリーム オブジェクトを作成し、それをファイル例.txt。ファイル ポインターを操作する前に、ファイルを開く必要があります。
この例では、seekp() 関数を使用してファイル ポインターの位置を 6 に設定し、次に put() 関数を使用してファイルの位置 6 に文字「X」を書き込みます。次に、seekg() 関数を使用してファイル ポインタの位置を 0 に設定し、get() 関数を使用してファイルの位置 0 から文字を読み取って出力します。
5. まとめ
以上がCを使ったテキストファイルの入出力の基本操作です。ファイル操作を行う場合は、ファイルを開く順番と閉じる順番や、ファイルポインタの位置の操作に注意する必要があります。テキストファイルの読み書きやポインタの位置決めなどの操作は非常に簡単ですが、よく使う機能や操作方法を覚えておく必要があります。
以上がC++ での入出力にテキスト ファイルを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。