The problem here is that first you are are dealing with a string
such as
char *welcome = {'h','e','l','l','o'};
First of all this line input[count]='#';
will overwrite the number in the string referring to count
for instance if 0, now your string is
{'#','e','l','l','o'};
or 2
{'h','e','#','l','o'};
This is not a good idea with strings, as you can never be sure that you will always work the way you want to and is overly complicated. You should use strcat instead.
The second and most important problem is that you have to explicity convert the integer to a string before you can put it into a string.
Each letter and symbol has an integer equivalent, like (this is not exact), 71 = a, 189 = ~, 63 = $.
So you are setting the string to an integer value that will be a character of the integers equivalent, and furthermore flush the rest of the string. so now your
*welcome = {'h','e','l','l','o'};
is now
*welcome = {'$'} or {'~'};
This would be much better code although i haven't tested it
char *buffer;
strcpy(input,"#"

;
_itoa( Idimage, buffer, 10 );
//convert integer to string
strcat(input,buffer); //add the buffer onto the string
cout<<input;
strcat(input,"."

; //add the . to input string
return strlen(input);
//i dont if this will work but i hope its in the right direction