Convert string of variable length to floats.

That's all you're asking the program to do! Try:

That won't work.

OP: You are now asking the SD card file for 6 characters are a time, not the 5 that you were asking it for. You need to re-write the code that reads the data from the file, to read one byte at a time, until it finds the carriage return and/or line feed. Store the data in the next position in the array, until the character read is a carriage return or line feed. When you find a carriage return or line feed, discard it, add a NULL terminator, and, if the string length is greater than 0, call atof() and store the result.