Mega with wiznet shield (wire hack)+thingspeak+sd problem

Watch out for type float. If you try to use that type in sprintf, the result will be "?" where you expected the value to be. You need to convert that float to a string first.

Is the value returned from the temperature sensor a float type? Or integer?

edit: Some devices return the temperature in fractions of a degree, like half or quarter of a degree. 85 may be in quarter degrees. That would be 21.25 degrees Celsius.