String我想在控制台中显示 C++ 的值 -但该特定值String不是独立定义的 - 它是另一种类型变量的属性...我当前尝试用来显示其值的行是:
printf("\n CSARSixSectorItem.cpp line 530. rm_WPSequence[liSARIndex -1]: %s", rm_WPSequence[liSARIndex-1].rm_RefPointDB->m_Name);
Run Code Online (Sandbox Code Playgroud)
在引号之外,我将变量:传递rm_WPSequence[liSARIndex-1].rm_RefPointDB->m_Name给.%sprintf
m_Name是 String 类型的变量,定义为:
std::string m_Name;
Run Code Online (Sandbox Code Playgroud)
rm_RefPointDB是一个指向 a 的指针CGenericRefPoint,定义为:
CGenericRefPoint * rm_RefPointDB;
Run Code Online (Sandbox Code Playgroud)
rm_WPSequence 的vector定义如下:
vector< CUserWaypointListElement > rm_WPSequence;
Run Code Online (Sandbox Code Playgroud)
但是,虽然我尝试显示的实际变量是 a string,但当在控制台中打印该行时,我没有给出字符串的内容,而是给出一些不可读的字符,例如L,%...显示的字符每次都会改变该行被打印。我想知道这是否是因为它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());
Run Code Online (Sandbox Code Playgroud)
解释:%s 期望显示 char* 类型。您正在传递一个 std::string ,它是 Class Type 。
c_str() 返回一个指向 std::string 包含的 char* 缓冲区的指针。
| 归档时间: |
|
| 查看次数: |
7854 次 |
| 最近记录: |