Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作多用途输入函数input();在C中?_C - Fatal编程技术网

如何制作多用途输入函数input();在C中?

如何制作多用途输入函数input();在C中?,c,C,我是C编程的初学者,在编写程序时,我想知道是否有一个通用的输入函数输入;这样,大括号中给出的变量名将被要求输入如下内容: 输入 结果: 输入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编程的初学者,在编写程序时,我想知道是否有一个通用的输入函数输入;这样,大括号中给出的变量名将被要求输入如下内容:

输入

结果: 输入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
}
那么输出应该是这样的: 输出: 输入a:10的值 ***a值=10*** 输入b的值:10.0 输入c:D的值 ***b值=10.000000*** ***c=D**

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


Update:我已经写了行1,2和3的注释:PrtTf函数只是为了显示A、B和C++的值恰好正确地存储在相应类型

中,字面上的语法和你写的一样,不,你需要C++函数来重载这个函数,但值得一提的是,在内部,它只会使用一组不同的函数,所以实际上它几乎与input_int、input_char等完全相同

您可以在结构中使用union(可能是union)——您需要将实际类型保存到某个地方,但这是完全不同的方法


宏,尤其是C11,如果你能使用C11功能,它也是一个很好的选择。

试试看。在C语言中你不能做这样的事情。但是使用宏你可以尝试实现类似的东西。也没有通用的输出函数。您可以使用上面的printf。所以不用麻烦,使用scanf:printf输入a:的值;扫描%d,&a;正如@Eddy_Em所说的,您可能可以使用宏将变量的名称输入到提示字符串中,但通常不值得这样做。如果你发现自己输入了太多的东西,最好考虑一些结构化的输入-配置文件等等。你应该使用不同的函数或者使用额外的参数来指定输入函数中的类型。相信我,当我还是一个概念的初学者的时候,我也曾经这样想!