Estoy haciendo un programa y para cargar determinados datos he creado un fichero de configuración (al estilo de los *.ini) donde guardo varios datos generales del programa.
Como quiero que la lectura del fichero sea lo mas sencilla posible, lo he hecho de la siguiente forma
xxxxxx1: yyyy1
xxxxxx2: yyyy2
...etc.
donde xxxxxx1 es el nombre de la variable que quiero cargar (sin caracteres de separacion como espacios o tabuladores), : son dos puntos y un separador (ahora mismo es un espacio) y yyyy1 es el valor que quiero leer. así se quedaría algo como:
variable1: 1.002
variable2: 3.141592
...etc.
El problema es que ahora me planteo añadir comentarios de una línea al estilo de:
# esto es un comentario de una linea
variable1: 1.002
# aqui viene la segunda variable
variable2: 3.141592
#fin del fichero
Y no se me ocurre una forma elegante de hacerlo. La idea que tenía en mente es leer el primer caracter de la línea: si es '#' hacer un getline, y si no leer un string (que sería el nombre de la variable) y despues la variable que me interese. El problema es tengo variables de distintos tipos, por lo que no puedo hacer un bucle para leerlas, y la otra solucion que se me ocurre es añadir una comprobación de comentarios para cada variable que lea.
Para aclarar esto último, la lectura ahora mismo la tengo así:
file>>trash;
file>>program_version;
file>>trash;
file>>build_time;
file>>build_date;
file>>trash;
file>>msg_final_mark;
Si las variables build_time y program_version son int y string respectivamente no podría hacer algo como
string variable[1000]; i=0;
while(!eof){
comprobar_comentarios();
file>>variable[i];
i++;
Ya que leería el int (o cualquier tipo de dato) como un string. A unas malas, con atoi y similares puedo hacer un apaño, pero si se os ocurre una solución más elegante, que seguro que las hay os lo agradezco.
PD: También he barajado usar un xml, pero para lo que lo voy a necesitar sería matar moscas a cañonazos...