C++でfscanfの代わりに使えるものは?

昨日の日記で、

どなたか、C++で、fscanfと同じように使える関数ってしりませんか?

と書いていたんですが、個人的に解決方法を探ってみました。


私は「ファイルから、スペースや改行で区切られた値を一つ一つ読み込んで、int型の変数に格納する」
といったことを、fscanf以外の関数で実現したかったんですが、こんな感じで良いようです。

#include<iostream>
#include<fstream>

using namespace std;

void main(){
	int n,i;
	ifstream ifs;
	ifs.open("sample.txt");     //読み込むファイルを指定
	
	while(i != 0){              //iに0が読み込まれたら読み込み終了
		ifs >> i;           //変数iに値を格納
		cout << i << endl;  //読み込んだ値を出力
	}

	ifs.close();
}


なんだか、fscanfよりシンプル…。たった「>>」だけなんて…。


バイナリファイルだと、また勝手が違うようですが、
結構C++で書くとすっきりしますね…。ファイル入出力。


ともかく、やっと頭の中のもやもやが晴れました。
せっかくC++を使うので、C言語じゃなくて、C++っぽい表現を使いたいな、と思っていたので。
今回の件で、勉強不足を痛感したので、もっとC++を勉強していきたいと思います。