Código:
fscanf(dato," %lf %lf %lf ", &columna1,&columna2,&columna3);
Esta instruccion se esta implementando de manera incorrecta. Si empleas fgets para la lectura de las líneas del archivo ya no empleas fscanf. Por otro lado las variables columnas son de tipo char y la conversion la realizas a un long donde pones %lf debería ser %s.
Valida el uso de fscanf, fgets, sscanf y demas funciones para manejo de cadenas y archivos
http://c.conclase.net/librerias/funcion.php?fun=fscanf