バイナリファイルから入力を受け付ける手法を学びます。
バイナリファイルとは、あらゆる種類のファイルを指します。
この手法を学ぶことでどのようなファイルのデータでも読み込めるようになります。

Officeソフトはお持ちでしょうか?
もし持っていないのであれば、Apache OpenOfficeをインストールするのをおすすめします。

今回は.csvファイル内のレコードを読み取る手法を学びます。
しかし、この手法は.csv以外にも様々なファイルに応用可能です。
.csvとは、,で区切られたテキストファイルです。
161


160


account.csvファイルをC:\Users\貴方のPCのユーザー名\source\repos\Project1\Project1へ作成しました。これはVisual Studioのバージョンによって配置場所は変わるのでご注意下さい。
筆者の環境はVisual Studio 2017です。Source.cppと同じ場所に配置すればよいです。
163


ここまで読んでパスがよく分からないという方はこのサイトの上の方を見て下さい。http://jamfolder.work/lessonD.cppと書かれているのが見えるでしょうか? これがパスです。試しにLessonDのDをPにしてエンターを押してみて下さい。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
それではコードの説明をしていきましょう。
まず、ファイルを操作する為にはfstreamをインクルードします。この中にはファイル操作の為のクラスが定義されており、C++でのファイル操作は、予め作られたファイル操作クラスを宣言して行います。

ファイル入力を受け付けるクラスはifstreamです。
std::名前空間に定義されています。
コンストラクタには2つの引数を受け付けます。第一引数にはファイルのパスを指定します。第二引数ではそのファイルをどのように扱うかを指定します。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ファイルオブジェクトには様々な関数が定義されており、その中で最も扱いやすいのがgetlineです。getlineは一行読み込みます。getlineの第一引数には、読み込んだテキストを格納する格納先の先頭アドレスを指定します。配列名はそのままで配列の先頭アドレスを表します。
第一引数の後ろには、最大何文字まで読み込むかを指定します。この文字数より1少ない数に到達した時か、レコードから改行を検出した場合、getlineは読み込みを終了します。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
また、getlineは第三引数を受け取ることもできます。
getlineは第三引数に指定した文字が読み込まれた時も処理を終了できます。つまり、','を指定することで、.csvのデータを1つずつ受け取ることもできます。

166


ちなみに数値データを受け取りたい場合は、数値を.csvの中に書いて、読み出す際に文字列として受け取ります。それをatoiで変換するとよいでしょう。