-6

这似乎相当乏味,但要求如下。我从一个应用程序获取输入,该应用程序是字符串,并且是我需要将其类型转换为指针类型的数据类型。

但是类型转换仅支持物理外观而不支持 ex 的字符串类型

 string a = "char";
 char b;
 int c = 82;

 b= (a)c; 

在这里,我需要将 int c 类型转换为 char c 并放入 char b。我需要循环执行,因此宏不会用作其预处理器

4

1 回答 1

2

假设您必须将某些输入“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”使用基本类型,而是使用某种形式的抽象,如类来处理转换并返回转换后的值,而不是一起使用类型转换。

于 2013-09-03T14:00:07.910 回答