mikson Temat założony przez niniejszego użytkownika |
Problem z przekazaniem std::string do _stprintf » 2014-05-18 21:07:08 Witam, Mam taki kod: _stprintf( szBuffer, _T( "%s\n%s\n %s" ), a, b, c ); Chcę scalić trzy stringi ( a, b, c) w jedną zmienną typu _TCHAR właśnie przy pomocy _stprintf. Po kompilacji i uruchomieniu program od razu zawiesza się (przestaje odpowiadać). Kompilator dał jedynie ostrzeżenie: [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime Co jest źle? Pozdrawiam. |
|
pekfos |
» 2014-05-18 21:41:35 a.c_str(). |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-05-19 15:53:03 Teraz ostrzeżenie podczas kompilacji nie pojawia się, ale program przestaje odpowiadać po otworzeniu. Gdy usunę linijkę z _stprintf wszystko działa poprawnie. Co jest źle tym razem? |
|
MrPoxipol |
» 2014-05-19 15:55:32 Kod. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-05-19 15:58:59 string a, b, c; string pom;
while( !plik.eof() ) { getline( plik, pom ); if( pom == szukane ) { getline( plik, a ); getline( plik, b ); getline( plik, c ); break; } }
plik.close();
a.c_str(); b.c_str(); c.c_str();
_TCHAR szBuffer[ 1000 ]; _stprintf( szBuffer, _T( "%s \n %s \n %s" ), a, b, c );
SetWindowText( hTextBox1, szBuffer );
a ostrzeżenie wróciło: [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime |
|
pekfos |
» 2014-05-19 16:16:17 Masz przekazać wynik c_str() do _stprintf().. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-05-19 16:18:13 Że tak? string d = a.c_str(); string e = b.c_str(); string f = c.c_str();
_TCHAR szBuffer[ 1000 ]; _stprintf( szBuffer, _T( "%s \n %s \n %s" ), d, e, f ); |
|
pekfos |
.. » 2014-05-19 16:22:51 _stprintf( szBuffer, _T( "%s lol %s lol %s" ), a.c_str(), b.c_str(), c.c_str() );
|
|
« 1 » 2 |