阴阳神万物主 发表于 2019-12-16 15:43:25

关于 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*, ...)'


Croper 发表于 2019-12-16 15:59:41

string是不会隐式转化为char*的
请使用a.c_str()

阴阳神万物主 发表于 2019-12-16 16:36:01

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]
查看完整版本: 关于 sscanf 读入 double 数据