I'm not sure if I understood your question, and I'm a newbie, but since I think I've implemented this in my own platformer, here goes my suggestion:
In your main game loop set the view using SetFromRect, like this
View.SetFromRect(sf::FloatRect(cam_x,cam_y,cam_x2,cam_y2));
where all the parameters are float variables.
Then, in the function where you move your character sprite increment or decrement the x and y values of the view at the same rate as the movement of the character. I did it like this:
(I know that most of this code doesn't make sense without the rest of the program. Just focus on how the view and the character's coordinates change at the same rate when the character is 300 pixels to the right of the x value of the view)
if (ventana.GetInput().IsKeyDown(sf::Key::Left) && (animar_x > 0) )
{
caminando_izq = true;
if (caminando_der == true) arranque = -50;
caminando_der = false;
///////// View movement starts here
if ( (animar_x < (cam_x + 300)) && (cam_x >= 0) )
{cam_x = cam_x + arranque * ventana.GetFrameTime(); cam_x2 = cam_x2 - (-arranque) * ventana.GetFrameTime();}
//////// View movement ends here
///////// Character movement starts here
animar_x = animar_x - (-arranque) * ventana.GetFrameTime();
if (arranque > -400) arranque -= 10;
set_x(animar_x);
}
Hope this helps out.