c++ - 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。
解决方案
您需要括号来正确确定 if/else 语句的范围
if (key == VK_ABNT_C1) {
fprintf(OUTPUT_FILE, "%s", "Abnt C1")
fclose(OUTPUT_FILE);
return -2;
}
推荐阅读
- google-cloud-firestore - 存在对象键的 Firestore 查询文档
- c++ - 具有默认类型和值的模板参数
- sql - 从不同的行收集多个值并在 SQL 中从它们创建列
- c# - 无法在插件注册工具中调试 Dynamics C# 插件
- c# - 通过 UDP 从本地服务器更新 Unity3D 中对象的变换组件
- swift - 来自 func 的 TDD 数据未在 XCTest 案例 Swift 中返回
- date - SSRS 如何获得一个月的第一个日期,滞后 1 天?
- angularjs - 使用 Grunt for AngularJS 项目创建缩小的 js 文件
- google-bigquery - BigQuery 中的自动增量字段
- python - 你如何将单个 wheel 文件上传到 pypi 服务器?