在知道变量的数据类型之前,如何声明变量? 我是一个新的C++源于Python背景。

在知道变量的数据类型之前,如何声明变量? 我是一个新的C++源于Python背景。,c++,C++,如果我想从用户处输入,然后我想检查输入的数据类型(例如整数或浮点),我如何才能声明要分配用户输入的变量?当您从用户处获得输入时,它将以字符串的形式到达。例如: std::string inp; std::cin >> inp; 然后,获取inp(用户键入的内容)的内容,并查看其中包含的字符。此时,您可以根据它是否包含(a)所有数字、(b)数字和小数点,或(c)其他全部内容来做出决定。从用户处收集字符串,然后对其进行解析更好 这个问题是寻找答案的地方: 简短的回答:你不能 长话短说:

如果我想从用户处输入,然后我想检查输入的数据类型(例如整数或浮点),我如何才能声明要分配用户输入的变量?

当您从用户处获得输入时,它将以
字符串的形式到达。例如:

std::string inp;
std::cin >> inp;

然后,获取
inp
(用户键入的内容)的内容,并查看其中包含的字符。此时,您可以根据它是否包含(a)所有数字、(b)数字和小数点,或(c)其他全部内容来做出决定。

从用户处收集字符串,然后对其进行解析更好

这个问题是寻找答案的地方:
简短的回答:你不能

长话短说:你不能。C++是静态类型的语言,意思是必须在编译时定义类型。Python是动态类型化的,因此对象的类型可以随着行的变化而变化

如果你想从用户那里得到一些输入,你可以使用一个字符串

例如,如果要从用户处获取整数输入:

int n;
std::cin >> n;
浮点输入:

float x;
std::cin >> x;
等等。请注意,在这两种情况下,如果用户输入的不是整数或浮点,则必须检查std::cin的标志以查看是否存在错误

但您需要告诉用户“现在输入整数”或“现在输入浮点”。你不能只接受一些任意的类型。相反,请设计代码,以便为整数或浮点输入提供可选的代码路径。或者强制其中一个,并在输入类型错误时打印错误

不要像在Python中一样编写代码。惯用的Python代码不是惯用的C++代码,你完成事情的方式看起来不一样。p> 在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;
}
std::字符串输入;
std::cin>>输入;
if(IsInteger(输入))
{
//用整数做东西
}
else if(IsFloat(输入))
{
//用浮子做东西
}
其他的
{

std::coutC++是一种静态类型语言。所有变量类型必须在编译时已知。

Python是动态类型语言,相反,C/C++是静态类型语言。不可能在运行时找到类型并声明。

我认为您可能需要的只是一个浮点或双精度。它们是C一个包含整数和小数。相当多的地区使用
作为十进制分隔符。其他地区使用它作为千位分隔符。国际化很难。
boost::lexical_cast(inp)
将使用当前地区。没有那么难,实际上,最难的部分是处理将它们混合在一起的真实用户。