gpt4 book ai didi

c++如何打印另一种类型变量的String属性的值?

转载 作者:太空狗 更新时间:2023-10-29 21:41:02 27 4
gpt4 key购买 nike

我想显示一个 C++ 的值 String在控制台中-但是那个特定的String没有独立定义 - 它是另一种类型的变量的属性......我目前试图用来显示其值的行是:

printf("\n CSARSixSectorItem.cpp line 530. rm_WPSequence[liSARIndex -1]: %s", rm_WPSequence[liSARIndex-1].rm_RefPointDB->m_Name);

在引号之外,我传递了变量:rm_WPSequence[liSARIndex-1].rm_RefPointDB->m_Name%sprintf .

m_Name是一个字符串类型的变量,定义为:

std::string m_Name;

rm_RefPointDB是指向 CGenericRefPoint 的指针, 定义为:

CGenericRefPoint * rm_RefPointDB;

并且 rm_WPSequence 是一个 vector定义为:

vector< CUserWaypointListElement > rm_WPSequence;

然而,尽管我试图显示的实际变量是一个 string ,当在控制台打印该行时,我没有得到字符串的内容,而是一些不可读的字符,例如 L,% ... 每次打印该行时,显示的字符都会发生变化。我想知道这是否是因为 String是另一个变量的成员?如果是这样,我如何显示字符串的值?我真的不想知道关于它的父变量的任何信息,但是我还需要做些什么才能单独访问 String 吗?

最佳答案

使用 std 字符串的 c_str() 函数传递给 %s :

printf("\n CSARSixSectorItem.cpp line 530. rm_WPSequence[liSARIndex -1]: %s", rm_WPSequence[liSARIndex-1].rm_RefPointDB->m_Name.c_str());

解释:%s 期望显示 char* 类型。您正在传递一个 std::string ,它是 Class Type 。

c_str() 返回一个指向 std::string 包含的 char* 缓冲区的指针。

关于c++如何打印另一种类型变量的String属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com