teplov-it Posted October 3, 2016 Share Posted October 3, 2016 Здравствуйте. Обнаружил следующую проблему: при попытке считать с помощью String::scanf строковую информацию ничего не происходит. Пример кода следующий: float x; const char *text; String *test = new String("Test ;134"); test->scanf("%s ;%f", text, &x); //переменная text = "", хотя я ожидаю, что text = "Test". При этом x = 134, как и ожидается. При этом если использовать написанный выше шаблон формата для String::printf, в строку все записывается верно. В чем может быть проблема? Link to comment
silent Posted October 4, 2016 Share Posted October 4, 2016 Привет!Похоже, что в движке баг - scanf некорректно обрабатывает строки. В качестве временного решения можно использовать что-нибудь вроде: #include <stdio.h> float x; char text[255]; String *test = new String("Test ;134"); sscanf(test->get(), "%s ;%f", &text, &x); //std sscanf Поправим в следующей версии движка. Спасибо! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
silent Posted November 29, 2016 Share Posted November 29, 2016 Hi, Following code should work fine with the next SDK Update: float x; char text[255]; String *test = new String("Test ;134"); test->scanf("%s ;%f", text, &x); Log::message("%s\n", text); Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Recommended Posts