As said before, std::hex
for hexadecimal, std::showbase
for the 'Ox' prefix and std::uppercase
for the uppercase.
But what about simply using the STL instead of the for
loop :
#include <algorithm>
#include <iostream>
#include <fstream>
#include <iterator>
int main()
{
std::ifstream file("key.txt");
copy(
std::istream_iterator<unsigned int>(file>>std::hex)
,std::istream_iterator<unsigned int>()
,std::ostream_iterator<unsigned int>(std::cout<<std::hex<<std::uppercase<<std::showbase,"\n")
);
return 0;
}
Even if you need a variable to store items :
#include <algorithm>
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
int main()
{
std::ifstream file("key.txt");
std::vector<unsigned int> keys;
keys.reserve(4);
copy(
std::istream_iterator<unsigned int>(file>>std::hex)
,std::istream_iterator<unsigned int>()
,back_inserter(keys)
);
copy(
begin(keys)
,end(keys)
,std::ostream_iterator<unsigned int>(std::cout<<std::hex<<std::uppercase<<std::showbase,"\n")
);
return 0;
}