//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // class istrstream // explicit istrstream(char* s, streamsize n); #include #include int main() { { char buf[] = "123 4.5 dog"; std::istrstream in(buf, 7); int i; in >> i; assert(i == 123); double d; in >> d; assert(d == 4.5); std::string s; in >> s; assert(s == ""); assert(in.eof()); assert(in.fail()); in.clear(); in.putback('5'); assert(!in.fail()); in.putback('5'); assert(!in.fail()); assert(buf[5] == '5'); assert(buf[6] == '5'); } }