I wouldn't recommend using the branch I created. You could download the code from
https://github.com/texus/SFML/tree/feature/font-ascent-descent and compile it with CMake if you want to, but I don't intend to keep the branch up-to-date with new changes being made into SFML.
The pull request that I linked to is something that will hopefully be merged into SFML at some point. I don't know how much they care about this functionality, I imagine that it has a low priority for now while they focus on API breaking changes for the SFML 3.0 release and might only properly look into this in a later update (e.g. SFML 3.1).
While having access the the ascent and descent allows fine control over the position of your text, maybe you don't necessarily need them right now.
Are you rendering the lines as a single sf::Text object (which contains newlines in its string)?
In that case you know that the distance between each line is exactly `font->getLineSpacing(characterSize)` (unless you called setLineSpacing on the sf::Text object, in which case you need to multiply it with that factor).
If you are rendering each line with a different sf::Text object then you can still use `font->getLineSpacing(characterSize)` to position them below each other. This will only fail with broken fonts, so unless you allow the user to set custom fonts you can ignore that.
In either case you may want to move the text or each line slightly upwards to compensate for the difference between characterSize and ascent (if you feel like text is always positioned slightly too low). The following code will get the ascent from the Ê character if it exists in the font, otherwise it assumes that characterSize equals the ascent and hope for the best.
float topOffset = 0;
if (font->hasGlyph(U'\u00CA'))
topOffset -= font->getGlyph(U'\u00CA', characterSize, false, 0).bounds.height;