Hola. No entiendo muy bien la pregunta, puesto que el programa parece funcionar bien.
 
Si te refieres a que no muestre ceros a la izquierda, te muestro una adaptación a tu código que ofrece eso:    
Código C++:
Ver original- #include <iostream> 
- using namespace std; 
- /** 
-  * Código de: https://codigo--java.blogspot.com.uy/2013/06/java-basico-045-funcion-conversion.html 
-  * 
-  * 11. Desarrolla una función que muestre en binario un número entre 0 y 255. 
-  */ 
- int binario(int num_decimal); 
- /*--------------------*/ 
- int main(int argc, char** argv) 
- { 
-     int num; 
-     cout << "\nIngresa un número entre 0 y 255: "; 
-     cin >> num; 
-     if(num < 0 || num > 255) 
-     { 
-         cout << "\n ERROR"; 
-     } 
-     else 
-     { 
-         cout << "\nEl binario de " << num << " es "<<binario(num); 
-     } 
-     return 0; 
- } 
-   
- int binario(int num_decimal) 
- { 
-     int resto, divisor = 2; 
-     int dividendo = num_decimal; 
-     int resultado=0; 
-     int multiplicador = 1; 
-     while(dividendo >= divisor)  //Mientras el dividendo sea mayor o igual que el divisor, es decir, mayor o igual que 2. 
-     { 
-         resto = dividendo % 2; 
-         if(resto == 1) 
-         { 
-             resultado = resultado + multiplicador; 
-         } 
-         dividendo = dividendo/divisor; // Actualizamos el valor del dividendo dividiendolo entre 2. 
-         multiplicador*=10; 
-     } 
-     if (dividendo == 1) 
-     { 
-     resultado = resultado + multiplicador; 
-     } 
-     return resultado; 
- } 
(algortimo sacado de 
aquí)