C++ 中的函数返回指示符让我知道给定的字符是正确的不是根据函数

问题描述

代码如下:

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,"Abnt C2")
        fclose(OUTPUT_FILE);
        return -2;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    else
        fclose(OUTPUT_FILE);
        return -1;



    return 0;

}

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

解决方法

你需要括号来正确地限定你的 if/else 语句

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