There is: stringstream:
Code:
#include <string>
#include <sstream>
#include <iostream>
using namespace std;

int func(int i)
{
  ostringstream oss;
  oss << i;
  string s = oss.str();
  cout << s.c_str();
  istringstream iss(s);
  int j;
  iss >> j;
  cout << j;
  s = "500";
  iss.str(s);
  iss >> j;
  cout << j;
  return j;
}
There it is. Header is <sstream>.
Input: basic_istringstream<typename character, typename traits = char_traits<character>, typename alloc = allocator<character> >
Output: basic_ostringstream<typename character, typename traits = char_traits<character>, typename alloc = allocator<character> >
Both: basic_stringstream<typename character, typename traits = char_traits<character>, typename alloc = allocator<character> >

char:
istringstream, ostringstream, stringstream

wchar_t: wistringstream, wostringstream, wstringstream

tchar:
typedef basic_istringstream<TCHAR> tistringstream;
typedef basic_ostringstream<TCHAR> tostringstream;
typedef basic_stringstream<TCHAR> tstringstream;

Derived from basic_istream/basic_ostream/basic_iostream, therefore the common << and >> overloads work.