No se puede hacer como contás que haces, por que pueden haber caracteres de control y/o caracteres no imprimibles que traen problemas, por ejemplo que pasa si la cadena encriptada tiene comillas <"> ?.
Para podrías o bien leer desde un archivo con las funciones de la libreria estandar, o si querés guardar la cadena dentro del ejecutable, guardar los valores numéricos de los bytes del archivo.
Para esto tendrías que crearte un programita que te devuelva la cadena lista para usar.
Por ejemplo:
Código:
#include <stdio.h>
int main(int c,char** v)
{
char buffer[4096];
int lb,i;
FILE *fd;
if(c<=1) return -1;
lb = 10;
if((fd = fopen(v[1],"rb"))==NULL) return;
lb = fread(buffer,1,sizeof(buffer),fd);
printf("{");
for(i=0;i<lb-1;i++)
printf("%d,",(int)*((char*)(buffer+i)));
printf("%d}\n",(int)*((char*)(buffer+lb-1)));
fclose(fd);
return 0;
}
ahora si lo compilas con nombre "dameLista" lo llamarias:
$ ./dameLista nombre_fichero > fichero.out
de forma que la salida te la deje en el archivo fichero.out
La salida va a tener la forma:
{byte1,byte2, ..... ,byteN}
donde byte1,byte2,.... son numeros decimales.
Saludos
Marcadores