-1

我是 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
***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 的值被恰当地/正确地存储在它们相应的类型中

4

1 回答 1

2

使用与您编写的语法完全相同的语法 - 不,您需要 C++ 特性(函数重载),但值得知道的是,它在内部只会使用一组不同的函数,所以实际上它与 input_int、input_char 几乎完全相同, ETC。

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

宏(尤其是 C11 _Generic,如果您可以使用 C11 功能)也可能是不错的选择。

于 2013-09-20T08:15:52.867 回答