如何制作多功能输入函数input();在C?

时间:2013-09-20 07:29:37

标签: c

我是C编程的初学者,在编写程序时我想知道是否可以创建通用输入函数input();,这样就可以要求输入括号中的变量名输入如下: / p>

input(a);

结果:
输入a:10的值

现在(在输入之后)如果我在任何程序中这样写:

#include<stdio.h>
main()
{
    int a;
    float b;
    char c;
    input (a);
    printf("value of a = %d\n",a);  // 1
    input(b);
    input(c);
    printf("value of b = %f\n",b);  // 2
    printf("c = %c\n",c);           // 3
}

然后输出应该是这样的:
输出:
enter value of a: 10
***value of a = 10***
enter value of b: 10.0
enter value of c: D
***value of b = 10.000000***
***c = D***

,函数参数应根据相关变量的类型(如char,float,int等)取值,如果a为char,则a中输入的值将相应保存。 我想用结构来实现它,但我无法思考,如何将input();中传递的实际参数与结构成员链接

更新 :我已经写了第1,2和3行(在评论中:printf()函数)只是为了显示a的值,b和c恰当/正确地存储在相应的类型中

1 个答案:

答案 0 :(得分:2)

使用与您编写的字面相同的语法 - 不,您需要C ++功能(函数重载),但值得知道在内部它将只使用一组不同的函数,所以实际上它几乎完全相同input_int,input_char等

你可以使用union(可能是结构中的联合 - 你需要在某处保存实际类型),但这是完全不同的方法。

宏(特别是C11 _Generic,如果你可以使用C11功能)也可能是不错的选择。