//: C04:WordList.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Display a list of words used in a document #include "../require.h" #include #include #include #include #include using namespace std; const char* delimiters = " \t;()\"<>:{}[]+-=&*#.,/\\~"; int main(int argc, char* argv[]) { requireArgs(argc, 1); ifstream in(argv[1]); assure(in, argv[1]); set wordlist; string line; while(getline(in, line)) { // Capture individual words: char* s = // Cast probably won't crash: strtok((char*)line.c_str(), delimiters); while(s) { // Automatic type conversion: wordlist.insert(s); s = strtok(0, delimiters); } } // Output results: copy(wordlist.begin(), wordlist.end(), ostream_iterator(cout, "\n")); } ///:~