专栏文章
题解:P12681 【MX-J15-T1】叉叉学习数据类型
P12681题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mip2p2j8
- 此快照首次捕获于
- 2025/12/03 05:11 3 个月前
- 此快照最后确认于
- 2025/12/03 05:11 3 个月前
在 C++17 中引入了
from_chars 函数,可强制转换数据类型:std::from_chars 函数接受一个字符串的起始和结束指针、一个用于存储结果的变量以及一个表示进制的参数。函数返回一个 std::from_chars_result 结构体,包含转换结果和错误信息。其原型如下:template<class T>
std::from_chars_result from_chars(const char* first, const char* last, T& value, int base = 10);
first和last指向字符串的起始和结束位置。value是要存储转换结果的变量。base是转换的进制,默认为 。
函数返回一个
std::from_chars_result 结构体,包含指向写入字符串后的下一个位置的指针和错误码。对于这题只需:
CPPlong long m;//m前可改为想要的数据类型
auto n=from_chars(s.data(),s.data()+s.size(),m);//s为输入的数
if(n.ec()==errc()) cout<<"long long"<<endl;//long long可改为所需
注:
from_chars 位于 charconv 头文件内, errc 位于 system_error 头文件内。上代码:
CPP#include<iostream>
#include<string>
#include<charconv>
#include<system_error>
using namespace std;
int main()
{
int i;unsigned int ui;long long ll;unsigned long long ull;string s;
cin>>s;
auto ai=from_chars(s.data(),s.data()+s.size(),i);
if(ai.ec==errc())
cout<<"int"<<endl;
auto aui=from_chars(s.data(),s.data()+s.size(),ui);
if(aui.ec==errc())
cout<<"unsigned int"<<endl;
auto all=from_chars(s.data(),s.data()+s.size(),ll);
if(all.ec==errc())
cout<<"long long"<<endl;
auto aull=from_chars(s.data(),s.data()+s.size(),ull);
if(aull.ec==errc())
cout<<"unsigned long long"<<endl;
cout<<"string"<<endl;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...