//: C04:StreamTokenizer.h // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // C++ Replacement for Standard C strtok() #ifndef STREAMTOKENIZER_H #define STREAMTOKENIZER_H #include #include #include class StreamTokenizer { typedef std::istreambuf_iterator It; It p, end; std::string delimiters; bool isDelimiter(char c) { return delimiters.find(c) != std::string::npos; } public: StreamTokenizer(std::istream& is, std::string delim = " \t\n;()\"<>:{}[]+-=&*#" ".,/\\~!0123456789") : p(is), end(It()), delimiters(delim) {} std::string next(); // Get next token }; #endif STREAMTOKENIZER_H ///:~