查看数据类型:
使用条件
#include<typeinfo>
语法
typeid(数据).name();
示例
#include<iostream>
#include<typeinfo>
#include<string>
using namespace std;
int main() {
int num1 = 123456;
string s1 = "abc";
cout << typeid(s1).name()<<endl;
cout << typeid(num1).name();
return 0;
}
__________________________________
Visual Studio运行结果
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
int
DEV运行结果
Ss
i
可以看出编辑器的不同,运行的结果也不相同。
Visual Studio用的是自己内嵌的微软编辑器,做了优化,更加人性化。而dev用的是gcc编辑器,这个编辑器很经典。在Visual Studio可以直接看出数据的类型,gcc的数据类型对应如下:
bool: b
char: c
signed char: a
unsigned char: h
(signed) short (int): s
unsigned short (int): t
(signed) (int): i
unsigned (int): j
(signed) long (int): l
unsigned long (int): m
(signed) long long (int): x
unsigned long long (int): y
float: f
double: d
string: Ss
字符串转数字
1.stoi、stof、stod、stol、stoll
string str("12345");
int num=stoi(str);
cout<<num<<endl;
cout<<typeid(num).name()<<endl; //i int类型
2.stringstream
使用stringstream需要引用sstream头文件。
string str="123";
int num;
stringstream ss;
ss<<str;
ss>>num;
cout<<num<<endl;
cout<<typeid(num).name()<<endl;//i
数字转字符串
1.to_string
int num=123;
string str=to_string(num);
cout<<str<<endl;
cout<<typeid(str).name()<<endl;//Ss string类型
2.stringstream
使用stringstream需要引用sstream头文件。
stringstream ss;
string str;
int num=123;
ss<<num;
ss>>str;
cout<<str<<endl; //123
cout<<typeid(str).name()<<endl; //Ss