首页 > 解决方案 > 如果数据类型未知,如何打印 void 指针的值?

问题描述

假设有人让我实现打印功能来打印键的值。这里有两个键在参数中给出,分别是键和键 1。如果我知道 void 指针指向的数据类型,我可以按照以下方式打印。但是,如果我不知道数据类型,我将如何打印?

void Print(map<string , void*>&mp,string key,string key1) {
    auto res =mp[key];
    auto res1 =mp[key1];
    cout<<*(string*)res<<endl;
    cout<<*(int*)res1<<endl;

}

为澄清起见,主要功能如下。

int main(){
    map<string , void*>mp;
    string *val = new string("val");
    mp["key"]=val;
    int *value = new int(5);
    mp["key1"]=value;
    Print(mp,"key","key1");
   return 0;
}

标签: c++pointers

解决方案


但是,如果我不知道数据类型,我将如何打印?

无法仅从void*. 你将不得不找到另一种方法。


推荐阅读