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

标签 c++ char initialization entity

我是 C++ 的新手,我想做一些简单的事情,比如将 char[] 的内容写入磁盘

我很难做到。

这是我的代码:

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”类型的实体

最佳答案

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

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

关于c++ - char* 类型的值不能用于初始化 "char"类型的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24254183/

相关文章:

c++ - 由于抽象模板 arg 的实例化,boost::lambda 表达式无法编译。任何解释和/或解决方法?

c - 如何在c中检查int或char

c - 字符数组的大小和字符指针的大小

c++ - 如何在没有外部库的情况下使用 C++03 约束执行基于正则表达式的字符串操作?

java - Android Java 多数组初始化

java - 将成员函数放在成员变量之前或反之亦然的原因是什么?

c++ - 如何解决visual c++中的 "unresolved external symbol"链接错误?

Python 类继承、__init__ 和 cls

c++ - 具有显式初始化程序的类的内存分配

c++ - 基于上一个任务的 sigchld() 执行新任务