c ++ ошибка преобразования * char в int

0

У меня есть массив символов, который мне нужно преобразовать в int, чтобы я мог делать математику против значений. Прямо сейчас самое близкое, что я могу получить, это → error: запрос для члена 'str' в 'myData', который имеет тип non-class 'char *'

код:

char *getmyData()
{
        static char buff[BUFSIZ];
        FILE *fp = popen("php script.php 155", "r");
        std::fgets(buff,sizeof(buff),fp);
        return buff;
}

void mathFunc(){
        char *myData = getmyData();
        for (int i = 0; myData[i]; ++i) {
                int x;
                const char * cstr2 = myData.str().c_str();
                cstr2 >> x;
                for (int i = 0; i < size; ++i)
                        cout << x[i] + 10;
        }
}

ошибка:

 # g++ -g myDataunfuck.cpp -o myDataunfuck.o -std=gnu++11 -lcurl
myDataunfuck.cpp: In function 'void mathFunc()':
myDataunfuck.cpp:30:31: error: request for member 'str' in 'myData', which is of non-class type 'char*'
myDataunfuck.cpp:31:12: error: invalid operands of types 'const char*' and 'int' to binary 'operator>>'
myDataunfuck.cpp:32:23: error: 'size' was not declared in this scope
myDataunfuck.cpp:33:15: error: invalid types 'int[int]' for array subscript
myDataunfuck.cpp:44:1: error: a function-definition is not allowed here before '{' token
myDataunfuck.cpp:47:1: error: expected '}' at end of input

полный код

  • 0
    Что вы ожидаете от cstr2 >> x ? А с myData это `C строка. Нет методов или членов! Вы путаетесь с std::string и как его использовать?
  • 0
    Похоже, что ваш запрос на член 'str' в 'myData' не может быть скомпилирован, поскольку 'char *' не является типом класса. Я думаю, что сообщение компилятора довольно ясно?
Показать ещё 5 комментариев
Теги:
arrays
pointers
data-conversion

2 ответа

2
Лучший ответ

Вы можете просто сделать следующее: -

const char * cstr2 = myData;
  • 0
    Вот и понял. Там написано, что мне нужно подождать 12 минут, чтобы нажать кнопку. Спасибо.
0

Ваша переменная myData является примитивным типом char*. У него нет доступных методов . ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню