我是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恰当/正确地存储在相应的类型中
答案 0 :(得分:2)
使用与您编写的字面相同的语法 - 不,您需要C ++功能(函数重载),但值得知道在内部它将只使用一组不同的函数,所以实际上它几乎完全相同input_int,input_char等
你可以使用union(可能是结构中的联合 - 你需要在某处保存实际类型),但这是完全不同的方法。
宏(特别是C11 _Generic,如果你可以使用C11功能)也可能是不错的选择。