首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GetAsyncKeyState和ofstream

GetAsyncKeyState和ofstream
EN

Stack Overflow用户
提问于 2012-01-26 23:01:36
回答 1查看 508关注 0票数 1

嗨,我是C++新手,我正在寻找function GetAsyncKeyState,我做了一个小应用程序,如果在名为log.txt的文件中按下"A“和"B”键,它可以正常工作,但我有一个问题:

我在每个if语句中添加了endl;,所以它是该行的末尾,转到第二行并添加下一个字母,但当我删除endl;时,它没有放入任何字母>> (我删除了endl;,因为我希望所有字母都在同一行)

代码语言:javascript
复制
#include <iostream>
#include <windows.h>
#include <fstream>
using namespace std;
int main ()
{
    ofstream logfile("log.txt", ios::out | ios::ate | ios::app);

    while (true)
    {
        Sleep (100);
        if (GetAsyncKeyState(0x41))
            logfile << "a" << endl;
        if (GetAsyncKeyState(0x42))
            logfile << "b" << endl;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2012-01-26 23:06:50

endl做了两件事。它在输出流中放入一个换行符,然后将其刷新。刷新使您可以立即看到结果。您可以手动调用flush而不使用换行符,如下所示:

代码语言:javascript
复制
logfile.flush();

此外,当您调用GetAsyncKeyState时,您应该过滤掉除最重要的位之外的所有内容,如下所示:

代码语言:javascript
复制
if (GetAsyncKeyState('A') & 0x8000)

请阅读“返回值”下面的文档以了解原因:http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293%28v=vs.85%29.aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9020099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档