C++ 变量未在作用域中声明,应在标记之前使用主表达式

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

我编译程序时出现以下错误

logger.cpp:在函数“void Log()”中: .cpp:19:4:错误:“结果”未在此范围内声明
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";
            }
        }
}