sscanf 与 stingstream,该如何处理

sscanf 与 stingstream
  long long res = 0;
  long long val;

  for (; next_permutation (buf, buf + 10); ) {
    if (fit ()) {
      // sscanf (buf, "%lld", val);
      stringstream ss(buf);
      ss >> val;
      res += val;
    }
  }

上面的代码,把 stringstream 的一行换掉会运行错误 0.0 有没有谁能指教一下这俩有什么区别??
------解决思路----------------------
sscanf (buf, "%lld", &val)
------解决思路----------------------
sscanf (buf, "%lld", val);

改成

sscanf (buf, "%lld", &val);