С++ и разделение строки

Тема в разделе "Arduino & Shields", создана пользователем mccurov, 14 сен 2015.

  1. mccurov

    mccurov Нерд

    Привет всем.
    Вопрос следующий - у меня большой проект и есть 3 сервы + джойстик xbox 360. Суть в следующем - сервы и должны реагировать на нажатия на джойстике. Данные с компа передаются в виде
    Код (Text):
    2  -58.0
    На ардуине мне нужно эти данные разбить на 2 части - первая часть button(нажатая кнопка) и value(значение, может быть отрицательным, диапазон от -100 до 100).
    Так как длина строки может быть динамическая, например
    Код (Text):
    2 26.0
    11 -45.0
    10 3.0
    самым оптимальным решением будет - деление строки на 2 значения по пробелу между ними. Я долго искал и нашёл вот этот код. Как Вы считаете, справится ли он с такой задачей? (в данном случае value заменено на angle)
    Код (Text):
    int main()
    {
        string button, angle;
        string text = value;
        stringstream ss;ss.str(text);
        ss >> button >> angle;
        cout << button << endl;
        cout << angle << endl;
        return 0;
    }
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

  3. AlexU

    AlexU Гуру

    stringstream может сразу конвертировать строки в числа:
    Код (Text):
    int main()
    {
        string text = value;
        stringstream ss;
        ss.str(text);
        int button;
        float angle; // double angle; для большей точности
        ss >> button >> angle;
        cout << button << endl;
        cout << angle << endl;
        return 0;
    }