Both are done using stringstream objects, provided in the sstream library.
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
// suppose we have a bunch of data stored in a string
string text = "123.5 blah x 13";
// declare an istringstream object that we'll use for
// reading from the string
istringstream myInput;
// copy the string data into the istringstream variable
// using the str method
myInput.str(text);
// now we can use the istringstream variable the same
// way we would usually use cin
// declare some data to store the pieces of data we
// pull from the string
float f;
string s;
char c;
int i;
// do some reads
myInput >> f; // f now contains 123.5
myInput >> s; // f now contains blah
myInput >> c; // f now contains x
myInput >> i; // f now contains 13
// check out the results
cout << f << s << c << i << endl;
}
|
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
using namespace std;
int main()
{
// declare an ostringstream object to write to
ostringstream myOutput;
// write a bunch of formatted data to the object
myOutput << setw(4) << "1" << endl;
myOutput << "blah blah blah";
myOutput << fixed << setprecision(2) << setw(6) << (12.4567) << endl;
// now extract the data as a string
string s = myOutput.str();
// try printing out the string just to check
cout << s;
}
|