テキストファイルの全文をゼロ終端文字列としてバッファに読み込みたいんですが
取得したファイルサイズと実際の終端までの長さが異なるのか、ゴミがくっ付いてきます。
ついてはこの原因が何なのかご教示いただきたいです。
バッファをmemsetでクリアしておけば解決するんですが、なるべくなら終端文字の代入で事を済ませたいです。

using namespace std;
ifstream ifs;
ifs.open("input.txt", ios::in);
size_t fsize = (size_t)ifs.seekg(0, ios::end).tellg();
ifs.clear();
ifs.seekg(0, ios::beg);
char *buff = (char*)malloc(fsize + 1);
ifs.read(buff, fsize);
ifs.close();
buff[fsize] = '\0';