1.
#include <stdio.h>
class Trace {
public:
void print(char * s) {printf("%s", s); }
};
int main()
{
Trace t ;
t.print("begin main() \n");
// main 函数的主体
t.print("end main() \n");
}
2.让他可以随时关闭
#include <stdio.h>
class Trace {
public :
Trace(){noisy = 0 ; }
void print(char* s) { if (noisy) printf("%s", s) ; }
void on() {noisy = 1;}
void off() {noisy = 0;}
private:
int noisy;
};
t.off() 会关闭t的对外输出,t.on()恢复t的输出能力。
3.让它打印到标准输出设备以外的东西上
#include <stdio.h>
class Trace {
public:
Trace() {noisy = 0; f = stdout; }
Trace(FILE* ff) {noisy = 0; f= ff; }
void print(char* s) { if(noisy) fprintf(f, "%s", s) ; }
void on() {noisy = 1;}
void off() {noisy = 0; }
private:
int noisy;
FILE* f;
};
printf(args); ======== fprintf(stdout, args);
int main()
{
Trace t(stderr);
t.print("begin main() \n");
t.print("end main() \n");
}