我是一个C编程初学者,在制作程序时我想知道是否可以有一个通用的输入功能input();
进行设置,以便要求输入大括号中给出的变量名称,如下所示:
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<br/>
***value of a = 10***<br/>
enter value of b: 10.0<br/>
enter value of c: D<br/>
***value of b = 10.000000***<br/>
***c = D***
即函数参数应根据相关变量的类型(如 char、float、int 等)取值,如 if a
是 char 然后在 a
中输入值将被相应保存。
我想使用结构来实现它,但我无法思考如何链接 input();
中传递的实际参数与结构成员
更新:我编写了第 1,2 和 3 行(在注释中:printf()
函数)只是为了显示 a,b 的值和 c 适本地/正确地存储在它们相应的类型中
最佳答案
与您编写的语法实际上相同 - 不,您需要为此使用 C++ 功能(函数重载),但值得知道的是,在内部它只会使用一组不同的函数,所以实际上它几乎与input_int、input_char 等
您可以使用 union (可能是结构内的 union - 您需要在某处保存实际类型),但这是完全不同的方法。
宏(尤其是 C11 _Generic,如果您可以使用 C11 功能)也可能是不错的选择。
关于c - 如何制作一个多用途输入函数input();在C语言中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911209/