问题描述
代码如下:
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;
}