c******e 发帖数: 101 | 1 我编了一个console 文本 游戏程序 有60个cout 和20 个cin
现在想保存屏幕内容 到 log.txt
我现在的想法有
1: 在每个cout cin 后加一个写到log.txt语句.可是那样看起来会很乱
2: 读取屏幕的buffer并和log.txt 同步. 可是我不知道如何写代码.
大家可不可以帮帮我? 最好有更好的方法啦
先谢过!! |
P********e 发帖数: 2610 | 2 1有什么不好呢?不会乱啊,很清晰的一句话
out << .....
【在 c******e 的大作中提到】 : 我编了一个console 文本 游戏程序 有60个cout 和20 个cin : 现在想保存屏幕内容 到 log.txt : 我现在的想法有 : 1: 在每个cout cin 后加一个写到log.txt语句.可是那样看起来会很乱 : 2: 读取屏幕的buffer并和log.txt 同步. 可是我不知道如何写代码. : 大家可不可以帮帮我? 最好有更好的方法啦 : 先谢过!!
|
n****g 发帖数: 150 | 3 use 1; team-work style.
How could you let ppl understand you if 2. |
v******d 发帖数: 1322 | 4 自己写个输出的类
【在 c******e 的大作中提到】 : 我编了一个console 文本 游戏程序 有60个cout 和20 个cin : 现在想保存屏幕内容 到 log.txt : 我现在的想法有 : 1: 在每个cout cin 后加一个写到log.txt语句.可是那样看起来会很乱 : 2: 读取屏幕的buffer并和log.txt 同步. 可是我不知道如何写代码. : 大家可不可以帮帮我? 最好有更好的方法啦 : 先谢过!!
|
s***e 发帖数: 122 | 5 比较赞同这个做法。
另外一个方法属于折中做法就是做两个函数:
input(...) { scanf(...); log(...); }
output(...) { printf(...); log(...); }
然后把cin用input替换,cout用output替换
但是前提是cin和cout后面不是太复杂,呵呵
【在 v******d 的大作中提到】 : 自己写个输出的类
|
h******e 发帖数: 26 | |
c******e 发帖数: 101 | 7 en, 我也想到了用这个.果然因为后面很复杂, replace的工作量也挺大,刚刚想出来,可
以重载<< 和>>
试试,不知道可不可以
【在 s***e 的大作中提到】 : 比较赞同这个做法。 : 另外一个方法属于折中做法就是做两个函数: : input(...) { scanf(...); log(...); } : output(...) { printf(...); log(...); } : 然后把cin用input替换,cout用output替换 : 但是前提是cin和cout后面不是太复杂,呵呵
|
v******d 发帖数: 1322 | 8 don't do that. a bad design
【在 c******e 的大作中提到】 : en, 我也想到了用这个.果然因为后面很复杂, replace的工作量也挺大,刚刚想出来,可 : 以重载<< 和>> : 试试,不知道可不可以
|
s***e 发帖数: 122 | 9 那最好还是定义一个自己的输出输入类吧。这样以后万一修改代码的时候也不容易漏掉
。刚才写了一个例子,也是做个练习,呵呵,以前也没有自己写过。你就作为一个参考
吧。
// MyIn.h
#ifndef _MY_IN_H_
#define _MY_IN_H_
#include
#include
#include
class MyIn
{
private:
std::ofstream& ofs;
public:
MyIn(std::ofstream& o);
public:
MyIn& operator >> (int& i);
MyIn& operator >> (std::string& s);
};
#endif
// MyIn.cpp
#include "MyIn.h"
MyIn::MyIn(std::ofstream& o):ofs(o) {
}
MyIn& MyIn::operator >> (int& i) {
std::cin >> i;
ofs << i << std::endl;
return *this;
}
【在 c******e 的大作中提到】 : en, 我也想到了用这个.果然因为后面很复杂, replace的工作量也挺大,刚刚想出来,可 : 以重载<< 和>> : 试试,不知道可不可以
|
B*********s 发帖数: 292 | |