Поиск символа новой строки '\n' в строковом объекте

У меня есть строковый объект общего вида string line = "yadayada\nyadaya". Я выполняю цикл по строке, как показано ниже, пытаясь "поймать" символ новой строки.

        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]);
             }

        }

Как вы видите, я перебираю символы строки и вставляю их один за другим в другой объект под названием buffer (не имеющий отношения к вопросу).

В первом if if ( ( ( line[i]== ' \ ') && ( line[i+1] == 'n' ) ) я пытаюсь "поймать" символ новой строки и внутри этого if увеличиваю индекс i на два, чтобы пропустить символы '\' и 'n' в следующем цикле. Проблема в том, что этот цикл никогда не ловит символ новой строки, а всегда вставляет в буфер два отдельных символа '\' и 'n'.

Важное замечание: я начинаю цикл с индекса i = 1, потому что первый символ действует как команда и обрабатывается особым образом.

Обновление: Я изменил вышеприведенный код, но все еще не повезло с тем, чего я пытаюсь достичь

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

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

                        buffer.insertChar(line[i]);
                    }

                }

Обновление # 2: Если это поможет, строка создается из ввода пользователя, как показано ниже:

string line;
getline(cin,line);
5
задан Vaios Argiropoulos 26 December 2011 в 14:24
поделиться