gpt4 book ai didi

c++ - 在 C++ 中将变量名转换为字符串

转载 作者:IT老高 更新时间:2023-10-28 21:38:05 31 4
gpt4 key购买 nike

我想将一些数据输出到文件中。例如假设我有两个 double vector :

vector<double> data1(10);
vector<double> data2(10);

有没有一种简单的方法可以将其输出到文件中,以便第一行包含标题“data1”和“data2”,然后是实际内容。该功能输出数据将传递给各种不同的数组,因此对名称进行硬编码标题是不可能的 - 理想情况下我想转换变量名到某个字符串,然后输出该字符串,后跟 vector 数组的内容。但是,我不确定如何将变量名“data1”转换为字符串,或者确实可以轻松完成(从阅读论坛我猜它不能)如果这是不可能的,另一种选择可能是使用关联容器,例如 map 或更简单的“pair”容器。

pair<vector<double>,string> data1(10,'data1');  

欢迎提出任何建议!

最佳答案

您可以使用预处理器“stringify”#做你想做的事:

#include <stdio.h>

#define PRINTER(name) printer(#name, (name))

void printer(char *name, int value) {
printf("name: %s\tvalue: %d\n", name, value);
}

int main (int argc, char* argv[]) {
int foo = 0;
int bar = 1;

PRINTER(foo);
PRINTER(bar);

return 0;
}


name: foo value: 0
name: bar value: 1

(对不起 printf ,我从来没有掌握 <iostream> 的窍门。但这应该足够了。)

关于c++ - 在 C++ 中将变量名转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386861/

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