Dans ma proposition les lignes sont lues une par une (dans la boucle while). Donc si commencePar(ligne, "=") vaut vrai, cela signifie que tu as une ligne qui commence par "=", ce qui implique donc que ta chaine contient un caractère saut de ligne puis immédiatement après un caractère "=". Même chose pour la fonction finitPar.
Donc :
std::istringstream flux(s);
while (flux)
{
std::string ligne;
std::getline(flux, ligne);
if (commencePar(ligne, "=") && finitPar(ligne, "="))
{
// ici la ligne lue commence par "=" et finit par "="
// comme c'est une ligne, elle est précédé par un saut de ligne (sauf la première)
// et finit par un saut de ligne (sauf la dernière)
}
}
Désolé pour l'indentation, elle disparait lors de l'envoi.
[^] # Re: Une possibilité
Posté par guppy . En réponse au message Trouver la fin d'une ligne après un charactère. Évalué à 1.
Donc :
std::istringstream flux(s);
while (flux)
{
std::string ligne;
std::getline(flux, ligne);
if (commencePar(ligne, "=") && finitPar(ligne, "="))
{
// ici la ligne lue commence par "=" et finit par "="
// comme c'est une ligne, elle est précédé par un saut de ligne (sauf la première)
// et finit par un saut de ligne (sauf la dernière)
}
}
Désolé pour l'indentation, elle disparait lors de l'envoi.