Mik*_*ley 22
简答:你做不到.
答案很长:你做不到.C++是一种静态类型语言,这意味着您必须在编译时定义类型.Python是动态类型的,因此对象的类型可以在行间更改.
如果你想从用户那里获得一些输入,你可以使用一个字符串.
例如,如果要从用户获取整数输入:
int n;
std::cin >> n;
Run Code Online (Sandbox Code Playgroud)
浮动输入:
float x;
std::cin >> x;
Run Code Online (Sandbox Code Playgroud)
等等.请注意,在这两种情况下,如果用户输入的不是整数或浮点数,则必须检查std :: cin的标志以查看是否存在错误.
但是你需要告诉用户"立即输入整数"或"立即输入浮点数".你不能只接受一些任意类型.相反,设计代码,以便为整数或浮点输入提供替代代码路径.或强制其中一个,并在输入错误类型时打印错误.
不要像在Python中那样编写代码.惯用的Python代码不是惯用的C++代码,你完成事情的方式看起来也不一样.
在C++中,获取任意输入的方式如下:
std::string input;
std::cin >> input;
if (IsInteger(input))
{
// do stuff with integer
}
else if (IsFloat(input))
{
// do stuff with float
}
else
{
std::cout << "Bad Input!" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
编辑:正如MSalters在评论中指出的那样,您实际上可以使用boost::lexical_cast<T>(expr)将字符串表示形式转换为某种类型T(其中T通常类似于int,float,double等).请注意,您可能仍需要检查是否expr实际上是整数,浮点数或其他.
当您从用户那里获得输入时,它将作为a string.例如:
std::string inp;
std::cin >> inp;
Run Code Online (Sandbox Code Playgroud)
然后,您获取inp(无论用户输入的内容)的内容,并查看其内部以查看它包含的字符.此时,您可以根据它是否包含(a)所有数字,(b)数字和小数点,或(c)完全包含其他内容来做出决定.
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |