⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 effector.txt

📁 Think in C++ 第二版源码
💻 TXT
字号:
//: C18:Effector.txt

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// (Should be "cpp" but I can't get it to compile with

// My windows compilers, so making it a txt file will

// keep it out of the makefile for the time being)

// Jerry Schwarz's "effectors"

#include<iostream>

#include <cstdlib>

#include <string>

#include <climits> // ULONG_MAX

using namespace std;



// Put out a portion of a string:

class Fixw {

  string str;

public:

  Fixw(const string& s, int width)

    : str(s, 0, width) {}

  friend ostream& 

  operator<<(ostream& os, Fixw& fw) {

    return os << fw.str;

  }

};



typedef unsigned long ulong;



// Print a number in binary:

class Bin {

  ulong n;

public:

  Bin(ulong nn) { n = nn; }

  friend ostream& operator<<(ostream&, Bin&);

};



ostream& operator<<(ostream& os, Bin& b) {

  ulong bit = ~(ULONG_MAX >> 1); // Top bit set

  while(bit) {

    os << (b.n & bit ? '1' : '0');

    bit >>= 1;

  }

  return os;

}



int main() {

  char* string =

    "Things that make us happy, make us wise";

  for(int i = 1; i <= strlen(string); i++)

    cout << Fixw(string, i) << endl;

  ulong x = 0xCAFEBABEUL;

  ulong y = 0x76543210UL;

  cout << "x in binary: " << Bin(x) << endl;

  cout << "y in binary: " << Bin(y) << endl;

} ///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -