独立于平台的将var转移到屏幕上的方式

| 是否有任何独立于平台的方式将程序创建的变量转储到屏幕上?说我写程序
#include <iostream>

void f(){
    std::string interal_data = \"hello world\";
}

int main(){
    f();
}
有没有办法在不将
std::cout/std::stream
加到ѭ3 adding的情况下取出ѭ1?我想从我的程序中输出所有数据,这是非常大的,我不想走到每隔一行并放置一个
std::cout
。调试器如何做? 我正在寻找在C ++中做到这一点的方法     
已邀请:
        嗯... \“不加
std::cout
/
std::stream
\”是胡说八道,如果您想输出某些内容,那就去做吧。调试器可以神奇地工作,即检查您的进程和东西,并为您的进程提供调试符号,而您没有这些符号。 编辑:当然,这可能仅对C ++正确,因为Python是某种解释型语言,因此您可以从中使用它。由于我对Python毫无经验,因此我无法对此发表评论。 :)     
        问题是关于python和c ++的,但仅更改为c ++? 在Python中,您可以在
globals()
locals()
上打印所有内容,如果对象是没有数据表示形式的类的实例,则只需在其中打印
__dict__
属性即可。即递归打印所有内容。 伪代码:
def show(obj):
    if isinstance(obj, (int, float, ...default types...)):
        print obj

    if isinstance(obj, dict):
        for i,j in obj.items()
            print i, show(j)

    else:
         show(obj.__dict__)
然后你做:
show(globals()) #or show(locals())
您可能要过滤更多的情况,但这是基本算法。     

要回复问题请先登录注册