吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1404|回复: 23
收起左侧

[已解决] C语言scanf的用法

[复制链接]
一剑飘零 发表于 2021-9-5 23:02
本帖最后由 一剑飘零 于 2021-9-6 09:47 编辑

[C] 纯文本查看 复制代码
#include <stdio.h>

int main() {
        int a;
        int b;

        b=scanf("%d", &a);
        printf("b=%d", b);
        
        return 0;

我看有人这样写过,就想尝试一下,结果却不对,百思不得其解。
为什么a不等于b呢,输入时不是把a的值赋值给b了吗?为什么b一直是1呢?
下面这个就正常,看不出哪里错了。

[C] 纯文本查看 复制代码
int main() {
        int a;
        int b;
        
        scanf("%d", &a);
        b = a;
        printf("b=%d", b);

        return 0;
}

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
woshicp + 1 + 1 热心回复!
cjcmxc + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

三滑稽甲苯 发表于 2021-9-5 23:15
scanf没有返回输入值,它只是把输入值传输给了变量a
真的小白 发表于 2021-9-5 23:16
[C] 纯文本查看 复制代码
返回已成功转换和分配的字段数量;返回值不包括已读取但未分配的字段。 返回值为 0 表示没有分配任何字段。


https://docs.microsoft.com/zh-cn/cpp/c-runtime-library/reference/scanf-scanf-l-wscanf-wscanf-l?view=msvc-160
Eaglecad 发表于 2021-9-6 00:11
这时候就很适合举一反三,把变量类型改了,再试试,你就知道为啥不能使用那个返回值了。
 楼主| 一剑飘零 发表于 2021-9-6 06:19
本帖最后由 一剑飘零 于 2021-9-6 06:24 编辑
三滑稽甲苯 发表于 2021-9-5 23:15
scanf没有返回输入值,它只是把输入值传输给了变量a

头有点晕,我看有的这样写是正常的。
 楼主| 一剑飘零 发表于 2021-9-6 06:21
真的小白 发表于 2021-9-5 23:16
[mw_shl_code=c,true]返回已成功转换和分配的字段数量;返回值不包括已读取但未分配的字段。 返回值为 0 表 ...

不明白,既然是赋值怎么就不对呢
无闻无问 发表于 2021-9-6 06:58
第一个为什么不一样,b是1,a是输入值,scanf函数返回值没有多大意义,如果非要,表示函数执行成功,故返回1。
第二个b=a,把输入值又给了b,它们肯定一样嘛
 楼主| 一剑飘零 发表于 2021-9-6 07:32
本帖最后由 一剑飘零 于 2021-9-6 07:39 编辑
无闻无问 发表于 2021-9-6 06:58
第一个为什么不一样,b是1,a是输入值,scanf函数返回值没有多大意义,如果非要,表示函数执行成功,故返回 ...

有点明白了,意思就是说只是返回一个1表示成功,0表示不成功,没有值的传递。可是我看教程这样写却可以传递值,不知道错哪里了。
头像被屏蔽
yuan71058 发表于 2021-9-6 07:50
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
tlf 发表于 2021-9-6 08:57
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表