La recherche pour le saut de ligne '\n' personnage dans un objet de type string

J'ai un objet chaîne de caractères de la forme générale string line = "yadayada\nyadaya". Je boucle sur la chaîne comme ci-dessous d'essayer de "rattraper" le caractère de saut de ligne.

        for (int i = 1; i < line.length(); i++)
        {
             if ( ( line[i]== ' \ ') && ( line[i+1] == 'n' ) ) 
             {
                  buffer.insertChar('\n');
                  i = i+2;
             }
             else
             {

                  buffer.insertChar(line[i]);
             }

        }

Comme vous pouvez le voir, je boucle à travers la chaîne de caractères et je suis d'insérer les caractères un par un dans un autre objet appelée mémoire tampon (pas à la question).

Dans le premier cas if ( ( line[i]== ' \ ') && ( line[i+1] == 'n' ) ) je suis en train d'essayer de "rattraper" le caractère de saut de ligne et à l'intérieur que si la carrosserie je suis l'incrémentation de l'indice i par deux, de sorte qu'il va sauter les caractères '\' et 'n' dans la boucle suivante. Le problème est que cette boucle attrape jamais un caractère de saut de ligne, mais toujours insère dans la mémoire tampon les deux caractères '\' et 'n' .

Note importante: je commence la boucle avec l'indice i = 1, car le premier personnage agit comme une commande et est traité spécialement.

Mise à jour: j'ai modifié le code ci-dessus, mais toujours pas de chance avec ce que je suis en train d'accomplir

                for (int i = 1; i < line.length(); i++)
                {
                    if ( (line[i]== '\n') )   
                    {

                        buffer.insertChar('\n');
                        i = i+1;
                    }
                    else
                    {

                        buffer.insertChar(line[i]);
                    }

                }

Mise à jour # 2 : Si ça peut aider la chaîne est originaire de l'entrée de l'utilisateur comme ci-dessous:

string line;
getline(cin,line);
le deuxième code est faux. Pourquoi en faire i = i+1? Et même alors, vous êtes tout simplement copier le contenu de la chaîne de tampon?

OriginalL'auteur Vaios Argiropoulos | 2011-12-26