这似乎相当乏味,但要求如下。我从一个应用程序获取输入,该应用程序是字符串,并且是我需要将其类型转换为指针类型的数据类型。
但是类型转换仅支持物理外观而不支持 ex 的字符串类型
string a = "char";
char b;
int c = 82;
b= (a)c;
在这里,我需要将 int c 类型转换为 char c 并放入 char b。我需要循环执行,因此宏不会用作其预处理器
假设您必须将某些输入“c”转换为某种类型“b”,我能看到这样做的唯一方法是测试用户输入并构建所有支持的转换。与此类似的东西。
string a;
cin >> a;
a.to_lower();
for(int i = 0; i < a.size(); i++)
a[i] = tolower(a[i]);
if(a.compare("char"))
{
c = static_cast<char>(b);
}
else if(a.compare("int"))
{
c = static_cast<int>(b);
}
else if(...)
{
//other supported type cast.
}
这是我可以看到使用基本类型的唯一方法。
另一种解决方案是不为您的输入“c”使用基本类型,而是使用某种形式的抽象,如类来处理转换并返回转换后的值,而不是一起使用类型转换。