2011-04-11 2 views
0

QT에서 StringStream을 선언 할 때 문제가 있습니다. 일반적으로QT에서 StringStream 선언 문제

aggregate 'std::stringstream ss' has incomplete type and cannot be defined; 
+0

오류의 원인은 무엇입니까? 그리고 어떤 오류 메시지가 나타 납니까? –

+0

음 ... 문제가 뭐니? 그 컴파일하지? 오류 메시지를 게시하십시오. – Naveen

+0

거기에 난 –

답변

3

QStringstd::string을 혼합하거나 관련이없는 좋은 생각 :

std::stringstream ss; 
       for (int i = 0; i <= path.length()-1; ++i) 
       { 
        if (path[i] == '\\') 
        { 
         ss << "\\\\"; 
        } 
        else 
        { 
        ss << path[i]; 
        } 
       } 
        path = QString::fromStdString(ss.str());//store the stringstream to a string 
     return path; 

오류 메시지는 다음과 같습니다 다음은 내 코드입니다. replace(QChar ch, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive)과 같은 메소드를 QString으로 구현해야합니다.

path.replace('\\', "\\\\"); 

BTW, 당신은 표준 std 스트림의 직접 QString을 사용할 수 없습니다 정의 된 과부하가 없습니다. qPrintable 함수가 도움이 될 수 있습니다. std::stringstream을 사용하려면 <sstream>을 포함해야합니다.

+0

이 코드는 알 수없는 문자의 결과를 올렸습니다. –

+1

이 코드는 작동하지만 방금 테스트했습니다. '''''''''''''''''''''''''''''과''Slashes ''의 수를 정확히 가지고 있는지 확인하고 정확한 컴파일러 오류를주지 마십시오. – Mat

+0

정말 고마워요. –

1

을 사용하면 stringstream 클래스를 사용할 수 있습니다.

@Mat에 동의하지만이 특정 목적을 위해 Qt의 QString 메서드를 사용하는 것이 좋습니다.