热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么不能在C中使用scanf()来获取不同类型的多个输入参数?

如何解决《为什么不能在C中使用scanf()来获取不同类型的多个输入参数?》经验,为你挑选了1个好方法。

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

#include 
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=]

Wintermute.. 5

你需要写

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

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



1> Wintermute..:

你需要写

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

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


推荐阅读
author-avatar
用户dvb51bjajs
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有