C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でのファイルとの間のクラスオブジェクトの読み取り/書き込み


iostream標準ライブラリには、標準入力ストリームからの入力を受け入れるためのcinメソッドと、標準出力ストリームに出力を出力するためのcoutメソッドの2つのメソッドがあります。この記事では、ファイルからクラスオブジェクトにデータを読み取る方法と、クラスオブジェクトのデータをファイルに書き込む方法を学習します。

ファイルとの間でデータを読み書きするには、C++の別の標準ライブラリが必要です。 fstreamの3つの主要なデータ型は-

です。
  • ifstream −入力ファイルストリームを表し、ファイルから情報を読み取ります。
  • オフストリーム −出力ファイルストリームを表し、ファイルに情報を書き込みます。
  • fstream −一般的なファイルストリームを表し、両方の機能を備えています。

クラスオブジェクトの作成

パブリックデータメンバーとして、Name、Employee_ID、およびSalaryを持つクラスEmployeeを取得しています。

class Employee {
   public:
      char Name[];
      long Employee_ID;
      int Salary;
} ;
Employee Emp_1;
Emp_1.Name=”Jhonson”;
Emp_1.Employee_ID=212020;
Emp_1.Salary=11000;

ファイルオブジェクトの作成

構文

fstream/ofstream/ifstream object_name;
void open(const char *filename, ios::openmode);
ofstream file1;
file1.open( “Employee.txt”, ios::app );
  • ここで、file1は、ファイルEmployee.txtを追加モードで開くために使用されるオブジェクトです(新しいコンテンツは最後に追加されます)。 file1オブジェクトのタイプはofstreamです。つまり、Employee.txtに書き込むことができます。

ifstream file2;
file2.open( “Employee.txt”, ios::in );
  • ここで、file2は、ファイルEmployee.txtを入力モードで開いて内容を読み取るために使用されるオブジェクトです。 file1オブジェクトのタイプはifstreamです。これは、Employee.txtからのみデータを読み取ることができることを意味します。

クラスオブジェクトの書き込みと読み取り

file1.write( (char*)&Emp_1, sizeof(Emp1) );
  • ここで、クラスオブジェクトEmp_1に存在するデータは、write関数を呼び出すことによってファイルEmployee.txtに書き込まれます。 (char *)&Emp_1はオブジェクトの先頭を指すために使用され、sizeof(Emp_1)はファイルにコピーされたバイト数を計算します。

file2.read( (char*)&Emp_1, sizeof(Emp1) );
  • ここで、クラスオブジェクトEmp_1に存在するデータは、read関数を呼び出すことによってファイルEmployee.txtから読み取られます。 (char *)&Emp_1はオブジェクトの先頭を指すために使用され、sizeof(Emp_1)はファイルから読み取られたバイト数を計算します。

ファイルを閉じる

file1.close();
file2.close();

ファイルの入力ストリームと出力ストリームを閉じます。

#include <iostream>
#include <fstream>
using namespace std;
// Class to define the properties
class Employee {
public:
   string Name;
   int Employee_ID;
   int Salary;
};
int main(){
   Employee Emp_1;
   Emp_1.Name="John";
   Emp_1.Employee_ID=2121;
   Emp_1.Salary=11000;
   //Wriring this data to Employee.txt
   ofstream file1;
   file1.open("Employee.txt", ios::app);
   file1.write((char*)&Emp_1,sizeof(Emp_1));
   file1.close();
   //Reading data from EMployee.txt
   ifstream file2;
   file2.open("Employee.txt",ios::in);
   file2.seekg(0);
   file2.read((char*)&Emp_1,sizeof(Emp_1));
   printf("\nName :%s",Emp_1.Name);
   printf("\nEmployee ID :%d",Emp_1.Employee_ID);
   printf("\nSalary :%d",Emp_1.Salary);
   file2.close();
   return 0;
}

出力

Name: John
Employee ID: 2121
Salary: 11000

  1. iOSでファイルを作成し、そこにデータを書き込み、そこからデータを読み取る方法は?

    ソフトウェア開発者である私たちは、ファイルの操作方法、ファイルへの書き込み方法、ファイルからの読み取り方法などを常に意識する必要があります。 この投稿では、同じことを学びます。ファイルを作成してデータをファイルに書き込み、後で同じファイルを読み取ります。 それでは始めましょう ステップ1 −新しいXcodeプロジェクトを作成→シングルビューアプリケーション→「ReadingWritingFile」という名前を付ける ステップ2 − ViewController.swiftを開き、以下に示すように新しい関数を追加します public func createAndWriteFile() {

  2. C / C ++のIseek()は、代替n番目のバイトを読み取り、別のファイルに書き込みます

    このチュートリアルでは、代替n番目のバイトを読み取って別のファイルに書き込む方法を理解するためのプログラムについて説明します。 このために、2つの.txtファイルが提供されます。私たちのタスクは、ファイル記述子のポインターを変更するために使用されるIseek()を使用して、あるファイルから別のファイルにコンテンツを書き込むことです。 例 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> void func(char arr[], in