我正在尝试将我的程序制作成多种语言,一开始,系统会询问用户是否要使用language1或language2。用户输入存储在变量中,然后使用if语句获得用户选择的语言。
赞:
std::cin >> language;
if(language == ENGLISH)
{
// Do something
}
else if(language == SPANISH)
{
// Do something else
}
接下来要做的是,我将要翻译的每个函数存储为两个头文件,一个英文和一个西班牙文,两个头文件完全相同,只是每个输出都被翻译了。
现在我所做的就是这样
std::cin >> language;
if(language == ENGLISH)
{
#include "English.h"
}
else if(language == SPANISH)
{
#include "Spanish.h"
}
现在,#include
是一个预处理程序指令,因此可以在主函数之前“执行”,是否可以解决此问题?
答案 0 :(得分:2)
现在,#include是后处理器指令,因此它会在主要功能之前“执行”
这是 pre 处理器指令。它不是在运行时“执行”的。在编译之前对源进行了预处理。
可以解决这个问题吗?
在编译并执行程序之后,无法运行预处理器。
更好的方法是不复制函数定义,而是在打印输出之前调用函数以转换消息。此翻译功能应将参数字符串映射为已翻译的参数字符串。