C++ 变量未在作用域中声明,应在标记之前使用主表达式
我编译程序时出现以下错误 logger.cpp:在函数“void Log()”中: .cpp:19:4:错误:“结果”未在此范围内声明C++ 变量未在作用域中声明,应在标记之前使用主表达式,c++,compiler-errors,C++,Compiler Errors,我编译程序时出现以下错误 logger.cpp:在函数“void Log()”中: .cpp:19:4:错误:“结果”未在此范围内声明 19 |结果=fread(日志文件和输入事件),sizeof(输入事件));logger.cpp:19:42:错误:应在“,”标记之前使用主表达式 19 |结果=fread(日志文件和输入事件),sizeof(输入事件)) #包括 #包括 #包括 #包括 使用名称空间std; 结构输入事件; 无效日志(){ fstream日志文件; 打开(“/dev/input
19 |结果=fread(日志文件和输入事件),sizeof(输入事件));logger.cpp:19:42:错误:应在“,”标记之前使用主表达式
19 |结果=fread(日志文件和输入事件),sizeof(输入事件))
#包括
#包括
#包括
#包括
使用名称空间std;
结构输入事件;
无效日志(){
fstream日志文件;
打开(“/dev/input/event”,fstream::app);
FILE*Log_files=fopen(“/tmp/data.txt”,“w”);
如果(!日志文件){
cout错误是不言自明的。您在result=fread(日志文件,&input\u事件,sizeof(input\u事件));
中使用了result
,但您从未声明过名为result
的变量。虽然没有直接关系,但如果(result!=Log\u文件),您将与有一段不愉快的时光
这绝对不能满足你的要求你是对的兄弟我现在定义它了是的,我知道我不能比较指针和变量,多亏了你,但我还有第二个错误,我的英语是我的3种语言你忘了为结果添加一个类型:结果=fread(Log\u文件,&input\u事件,sizeof(输入事件);
我不熟悉linux api,但我认为您需要在结果之前添加字符串。
#include <iostream>
#include <linux/input.h>
#include <fstream>
#include <cstring>
using namespace std;
struct input_event event;
void Log(){
fstream Log_file;
Log_file.open("/dev/input/event", fstream::app);
FILE * Log_files = fopen("/tmp/data.txt", "w");
if(!Log_files){
cout << "Datei /tmp/data.txt nicht geöffnet";
}
if(Log_file.is_open()){
bool session = true;
while(session){
result = fread(Log_files, &input_event, sizeof(input_event));
if(result != Log_files);
cout << "Reading error";
}
}
}
int main(){
Log();
if(event.type == EV_KEY && event.value == 0){
switch(event.code){
case 30:event.code = KEY_A;break;
cout << "A" << event.code;
case 14:event.code = KEY_BACKSPACE;break;
cout << "\t" << event.code;
default:
cout << "No";
}
}
}