我正在研究一个简单的类,因此如果我使用 cout “等效”,它将显示控制台,如果我不使用,则控制台不会弹出。
最终结果,如果可能的话,尝试让一些简单的东西使用它,比如:O.C() << "any type of data";
ORO.C("any type of data");
相当于一个std::cout
流。这次旅行是为了让我知道它是否被使用过。
// the obvious, shows and opens a/the console window so I can use the cout and cin streams.
void ShowConsole() {
AllocConsole();
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
int hCrt = _open_osfhandle((long) handle_out, _O_TEXT);
FILE* hf_out = _fdopen(hCrt, "w");
setvbuf(hf_out, NULL, _IONBF, 1);
*stdout = *hf_out;
HANDLE handle_in = GetStdHandle(STD_INPUT_HANDLE);
hCrt = _open_osfhandle((long) handle_in, _O_TEXT);
FILE* hf_in = _fdopen(hCrt, "r");
setvbuf(hf_in, NULL, _IONBF, 128);
*stdin = *hf_in;
}
从那里开始,我不知道该怎么办。为简单起见,我正在编写的类全局定义为“O”。该功能C()
是我试图用来使用流的功能。
我不知道在这里做什么,要么找到一种方法来返回一个句柄到 cout C()
,或者找到一种方法来让C()
接受任何类型的数据。
该类是基本的,看起来像:
class testout {
private:
bool display;
public:
void ShowConsole();
void C(); // which could return a handle, or accept any data type
}
任何帮助表示赞赏,我也可能在某些地方使用了一些不正确的术语。