文字列読み込み 数値変換

%e で double を読み込むとエラー %le を使うこと

%*s の*は,その token を無視する(代入先を設定しない)という意味.
読みとばすからといって,適当な型を指定してはいけない.(全読み込みがパーになる.)

#include <string>

int main(){
  std::string line = "hoge meso 3 4.4 5.5";
  char word[20];
  int v1;
  float v2;
  double v3;

  //e, f, g : float
  //le, lf, lg : double
  int n = sscanf(line.c_str(), "%s %*s %d %e %le", word, &v1, &v2, &v3);
  printf("%s %d %4.2e %le\n", word, v1, v2, v3);

  return 0;
}