c++ - 如何根据我们调用程序的环境来初始化参数?

标签 c++ c

在头文件中,我有一个参数指定控制文件的名称:

#define CTLFILE "server.ini"

这很好用。但现在我想要这样的东西:

如果我在服务器上

#define CTLFILE "server.ini"

否则如果我在客户端

#define CTLFILE "client.ini"

我该如何实现这个?

最佳答案

您可以在启动程序时传递选项:

例如尝试通过服务器客户端调用以下程序:

#include <stdio.h>
#include <string.h>

#define SERVER_FILE "server.ini"
#define CLIENT_FILE "client.ini"

int main (int argc, char *argv[])
{

    if (argc<2)
    {
        fprintf(stderr, "You mast pass type of envirnment\n!");
        return 1;
    }

    if (strcmp(argv[1], "server") == 0)
    {
        printf ("File selected: %s\n", SERVER_FILE);
    }
    else if (strcmp(argv[1], "client") == 0)
    {
        printf ("File selected: %s\n", CLIENT_FILE);
    }
    else
    {
        fprintf(stderr, "Not supported environment %s", argv[0]);
        return 1;
    }

    return 0;
}

关于c++ - 如何根据我们调用程序的环境来初始化参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41609565/

相关文章:

c++ - C++/CX 和 C++/WinRT 可以在同一个项目中使用吗?

c++ - 你能捕获递归 lambda 中的引用吗?

c++ - 在将它们写入文件之前比较使用 fprintf 生成的两个结果行

c - 中值滤波器实现测试

c - 需要帮助使用 GIOService(GLib、Glib-GIO)实现简单的套接字服务器

c - PHP 扩展 : Working with class objects

c++ - 如何在其他核心上运行每个线程?

c++ - 返回类型不正确

c - 在 C 中通过引用传递二维动态分配的双数组

c - 求两个数的 GCD 的最快方法是什么?