Значение типа char * нельзя использовать для инициализации объекта типа «char»

0

Я новичок в C++, и я хотел бы сделать простые вещи, такие как написание на диск содержимого символа []

Мне тяжело это делать.

Вот мой код:

char x[256],y[256],z[256];

        sprintf( x, "%.2f", pCommandHandling->m_dtHandleInformation[i].Xfrms.translation.x ); //pCommandHandling->m_dtHandleInformation[i].Xfrms.translation.x  is a float struct


        sprintf( y, "%.2f", pCommandHandling->m_dtHandleInformation[i].Xfrms.translation.y ); //pCommandHandling->m_dtHandleInformation[i].Xfrms.translation.y  is a float struct


        sprintf( z, "%.2f", pCommandHandling->m_dtHandleInformation[i].Xfrms.translation.z ); //pCommandHandling->m_dtHandleInformation[i].Xfrms.translation.z  is a float struct

    FILE *tracker_file = fopen("NDI_FiMe.TMP","w");
                char buffer[] = {x,";",y,";",z};
                fwrite(buffer , sizeof(char), sizeof(buffer), tracker_file);
                fclose(tracker_file);

Проблема, с которой я сталкиваюсь, заключается в том, что я получаю:

IntelliSense: значение типа "char *" не может использоваться для инициализации объекта типа "char"

  • 0
    Что вы хотите, чтобы char buffer[] = {x} делал? Сделать копию массива?
  • 0
    Что ж, позвольте мне изменить мой пример, чтобы добавить больше кода, не только х, есть 3 переменные. х, у и г
Показать ещё 1 комментарий
Теги:
initialization
char
entity

1 ответ

2

Вы не можете поместить массив символов (x) в список символов. Как говорится в сообщении об ошибке. Если вы хотите скопировать массив символов в другой массив символов, см. Семейство функций strcat.

Следующая ошибка включает sizeof. Он не вычисляет длину строки. Поскольку вы используете его сейчас, он даст 4: размер указателя буфера. Существует функция strlen для получения длины строки C.

Ещё вопросы

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