我是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 :(得分:2)
您不能将char数组(x)放入字符列表中。正如错误消息所示。如果要将char数组复制到另一个char数组,请参阅strcat系列函数。
下一个错误涉及sizeof。它不计算字符串的长度。正如您现在使用它时,它将给出4:缓冲区指针的大小。有一个strlen函数用于获取C字符串的长度。