Reading Binary files via stdin

Okay, I need to read in a binary file from stdin and stick it in an array. The file contains binary representations of floating point numbers. I need to make sure that my array is sized properly based on the number of elements. It is quite easy to do with if stream as follows

ifstream file("infile.bin", ios::binary | ios::ate);
// Since we are at the end, we can get the size
//file.seekg(0,ifstream::end);
long size = file.tellg();
cout << size;
file.seekg(0, ios::beg); //Seek back to the beginning
float* unsorted;
//Size input and read the file into it
unsorted = new float[size];
file.read((char*)unsorted, size);
file.close();
// Change size so it is the number of floats instead of
// the number of characters
size = size / 4;