次のプログラムをwhileを使い、かつ、ファイル名を標準入力、
データ数がいくつでも可能というように書き換えて

#include<iostream.h>
#include<fstream.h>
#include<map.h>

int main()
{
std::ifstream fin("in.txt");
std::map <int,int> intmap;
for(int i=0;i<5000;i++)
{
int val;
fin >> val;
intmap[val]++;
}
std::ofstream fout("out.txt");
for(std::map<int, int>::iterator it=intmap.begin();it!=intmap.end(); ++it)
{
fout << (*it).first << " " << (*it).second << std::endl;
}
return 0;
}