//: C04:StringSeeking.cpp {-bor}{-dmc} // From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison. // (c) 1995-2004 MindView, Inc. All Rights Reserved. // See source code use permissions stated in the file 'License.txt', // distributed with the code package available at www.MindView.net. // Reads and writes a string stream. #include #include #include using namespace std; int main() { string text = "We will hook no fish"; stringstream ss(text); ss.seekp(0, ios::end); ss << " before its time."; assert(ss.str() == "We will hook no fish before its time."); // Change "hook" to "ship" ss.seekg(8, ios::beg); string word; ss >> word; assert(word == "hook"); ss.seekp(8, ios::beg); ss << "ship"; // Change "fish" to "code" ss.seekg(16, ios::beg); ss >> word; assert(word == "fish"); ss.seekp(16, ios::beg); ss << "code"; assert(ss.str() == "We will ship no code before its time."); ss.str("A horse of a different color."); assert(ss.str() == "A horse of a different color."); } ///:~