关于 sscanf 读入 double 数据
#include<iostream>#include<cstdio>
using namespace std;
int main(){
string a="3,1415926";
a = a.replace(a.find(","),1,".");
double b=0;
sscanf(a,"%lf",&b);//为啥这一句编译报错?
//sscanf("3.1415926","%lf",&b);//这一句却不报错
cout<<a<<endl<<b<<endl;
return 0;
}提的问在注释中。
报错内容:
8 19 E:\代码库\C++\其他\test.cpp cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to 'int sscanf(const char*, const char*, ...)'
string是不会隐式转化为char*的
请使用a.c_str() Croper 发表于 2019-12-16 15:59
string是不会隐式转化为char*的
请使用a.c_str()
原来如此,多谢https://dss1.bdstatic.com/6OF1bjeh1BF3odCf/it/u=3817426056,1722311747&fm=74&app=80&f=JPEG&size=f121,90?sec=1880279984&t=8005033a5b17710e48d72923dc332f46
页:
[1]