gpt4 book ai didi

c - 为什么不能在 C 中将 scanf() 用于不同类型的多个输入参数?

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:09 25 4
gpt4 key购买 nike

为什么这在 C 中被认为是非法的?

#include <stdio.h>
int main()
{
int integer;
char character;
float floatingPoint;

scanf(" %d %c %f", integer, character, floatingPoint);

return 0;
}

以上代码在cc 编译器下产生如下错误信息。

cc Chapter2ex1.c
Chapter2ex1.c: In function ‘main’:
Chapter2ex1.c:8:5: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf(" %d%c%f", integer, character, floatingPoint);
^
Chapter2ex1.c:8:5: warning: format ‘%c’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
Chapter2ex1.c:8:5: warning: format ‘%f’ expects argument of type ‘float *’, but argument 4 has type ‘double’ [-Wformat=]

最佳答案

你需要写

 //                 v---------v-----------v-- addresses taken here
scanf(" %d %c %f", &integer, &character, &floatingPoint);

scanf 需要知道它应该写入它读取的值的位置,而不是当前驻留在那里的值。

关于c - 为什么不能在 C 中将 scanf() 用于不同类型的多个输入参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com