e.g.
#include <iostream>
using std::cout;
std::ostream & operator<<(std::ostream &os, unsigned __int64 inum)
{
char sznum[27] = {0};// maximum 18,446,744,073,709,551,616
sprintf(sznum,"%I64u",inum);// original number.
int ilen = strlen(sznum);
int i = ilen % 3 -1;
if(i < 0)
i = 3 -1;
int j = 0;
int k = 0;
for(j = 0;j<ilen;j++)
{
if(i<0 && k>0)
{
cout<<',';// show separator character.
k++;
i = 3 -1;
}
cout<<(char)sznum[j];// show it.
k++;
i--;
}
return os;
}
#include <iostream>
#include <fstream>
using namespace std;
class cc
{
public:
cc(const char *pout_file, unsigned __int64 i);
private:
friend std::ostream & operator << (std::ostream &os, unsigned __int64 i);
};
cc::cc(const char *pout_file, unsigned __int64 i)
{
std::ofstream fout;
fout.open(pout_file,std::ios_base::in|std::ios_base::out|std::ios_base::trunc);
fout<<i<<endl;
fout.close();
}
std::ostream & operator << (std::ostream &os, unsigned __int64 i)
{
char szstr[21] = {0};
sprintf(szstr,"%I64u",i);
return os << szstr;
}
int main()
{
cc cc("test.txt",12345678901234567890);
return 0;
}