标准输入数据的大小。如果我从一个控制台应用程序得到一个处理stdin
像这样:如何获得可通使用C++
HANDLE hStdIn = ::GetStdHandle(STD_INPUT_HANDLE);
然后我就可以从中读取数据:
BYTE buff[32];
DWORD dwcbRead = 0;
BOOL bReadRes = ::ReadFile(hStdIn, buff, SIZEOF(buff), &dwcbRead, NULL);
我的问题是,在阅读它们之前,我怎么知道有多少字节可用?
PS。如果没有可读取的数据,ReadFile
似乎会被阻止。
不完全重复的问题。被引用的链接(另一个问题)只能解决部分问题,当stdin被重定向时。 Anton Kovalenko的回答告诉我们'PeekConsoleInput'可以用于控制台标准输入。我们应该结合这些答案。 – 2016-01-05 03:15:40