Проблемы Qt QTcpSocket QByteArray/QString со специальными символами и правильным синтаксисом

У меня проблемы с некоторыми специальными символами в Qt, 2 - это кавычка и новая строка. Я подключаюсь к серверу с помощью telnet, и сервер почему-то автоматически ставит кавычки в начале и в конце ввода. У меня проблемы с удалением как кавычек, так и новой строки.

void MyClient::readyRead()
{
    if(WaitingForString())
    {
        if(socket->canReadLine())
        {
            qDebug() << "Ready to read, string expected";
            qDebug() << socket->readLine();
        }
    }
    else 
    {
        if(socket->canReadLine())
        {
            qDebug() << "Ready to read line, number expected";
            QString data = QString(socket->readLine().replace("\n", "").replace("\"", "");
            qDebug() << data;
            waitForStrings(1);
        }
    }
}

Проблема с заменой новой строки описана ниже:

Мой ввод из телнета: Привет

После того, как программа заменит новую строку: " ello (обычный вывод с кавычками будет "Hello")

А замена кавычек вообще ни на что не влияет. Я также пытался использовать двойную обратную косую черту, поскольку это RegEx, но у обоих все еще есть те же проблемы, как если бы они были. Помощь приветствуется, спасибо.

Изменить: это оказалось форматированием qDebug, а не результатом использования Telnet или чего-то еще.


person Knox    schedule 15.07.2012    source источник


Ответы (1)


Вы уверены, что новая строка и кавычки - это не только эффект использования qDebug()?

QDebug всегда заключает строку в кавычки и после этого пишет новую строку

person BlackIsAColor    schedule 06.08.2012
comment
Правильно, кавычки заключаются в QString и на самом деле не существуют. - person Knox; 09.08.2012