50 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_STRSTREAM10 11// <strstream>12 13// class istrstream14 15// explicit istrstream(const char* s);16 17#include <strstream>18#include <cassert>19#include <string>20 21#include "test_macros.h"22 23int main(int, char**)24{25 {26 const char buf[] = "123 4.5 dog";27 std::istrstream in(buf);28 int i;29 in >> i;30 assert(i == 123);31 double d;32 in >> d;33 assert(d == 4.5);34 std::string s;35 in >> s;36 assert(s == "dog");37 assert(in.eof());38 assert(!in.fail());39 in.clear();40 in.putback('g');41 assert(!in.fail());42 in.putback('g');43 assert(in.fail());44 assert(buf[9] == 'o');45 assert(buf[10] == 'g');46 }47 48 return 0;49}50