テキストファイルをバッファに一度に読み込みたいのですがバッファのサイズはどうやって知るの?

char filename[] = "\C\Hello.txt";
std::ifstream f(filnename,std::in);

char* buf = new char[?];
int readsize = f.readsome(buf,?);
buf[?] = \0;

というのを考えたんですけどサイズ(?)はどうやって知るの?
Win32APIにファイルサイズ知るのがあるらしいけどファイルハンドルとか要求してきてよくわかりません。
なんか良い方法ありませんか?