📄 ex20_15.cpp
字号:
/* Code for exercise 20.15. | | "C++ Solutions--Companion to The C++ Programming Language, Third Edition" | by David Vandevoorde; Addison-Wesley 1998; ISBN 0-201-30965-3. | | Permission to use, copy, modify, distribute and sell this software | and its documentation for any purpose is hereby granted without fee. | The author makes no representations about the suitability of this | software for any purpose. It is provided "as is" without express or | implied warranty. `----------------------------------------------------------------------*/#include <ctype.h>#include <iostream>#include <stdio.h>#include <string>#include <time.h>#if !defined C_STYLEbool read_string(std::string &s) { int const buffer_size = 100; char buffer[buffer_size+1]; int i = 0, c; while ((c = std::cin.get()) && (std::cin) && isspace(c)); while ((c = std::cin.get()) && (std::cin) && !isspace(c) && i!=buffer_size) { buffer[i++] = char(c); } buffer[i] = '\0'; s.assign(buffer, i); if (std::cin) { std::cin.putback(c); if (!isspace(c)) { std::string remainder; read_string(remainder); s.append(remainder); } return true; } else return false;};#else // C_STYLE is defined:bool read_string(std::string& s) { int const buffer_size = 100; char buffer[buffer_size+1]; int i = 0, c; while ((c = getc(stdin))!=EOF && isspace(c)); while ((c = getc(stdin))!=EOF && !isspace(c) && i!=buffer_size) { buffer[i++] = char(c); } buffer[i] = '\0'; s.assign(buffer, i); if (c!=EOF) { ungetc(c, stdin); if (!isspace(c)) { std::string remainder; read_string(remainder); s.append(remainder); } return true; } else return false;};#endifint main() { std::string word; int n = 0; bool not_eof; clock_t start = clock();#if defined(SIMPLE) while (std::cin >> word) ++n;#else do { not_eof = read_string(word); ++n; } while (not_eof);#endif printf("Read %d words in %f seconds.\n", n, (clock()-start)/CLOCKS_PER_SEC); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -