char *类型的值不能用于初始化类型" char"的实体。

时间:2014-06-17 00:40:19

标签: c++ char initialization entity

我是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"

的实体

1 个答案:

答案 0 :(得分:2)

您不能将char数组(x)放入字符列表中。正如错误消息所示。如果要将char数组复制到另一个char数组,请参阅strcat系列函数。

下一个错误涉及sizeof。它不计算字符串的长度。正如您现在使用它时,它将给出4:缓冲区指针的大小。有一个strlen函数用于获取C字符串的长度。