Scanf在提交非数字后不接受输入

问题描述 投票:2回答:1

有人可以帮助我理解为什么第一个输入为'K'时scanf不会要求我提交第二个输入吗?

int n=0;
scanf("%d",&n);
scanf("%d",&n);

就像它从其他地方得到输入!在这种情况下,n的值是多少?

c input int scanf c99
1个回答
0
投票

如果检查scanf()返回值,则显示为0

#include <stdio.h>

int main(int argc, char **argv)
{

    int n=0;
    int retvalue=0;

    retvalue = scanf("%d",&n);
    printf("first scanf() return: %d\n", retvalue);

    retvalue = scanf("%d", &n);
    printf("seconf scanf() return: %d\n", retvalue);

    return 0;
}

[opengroup网站上的scanf()文档

这些函数应返回成功匹配的数量,分配的输入项; 如果提前匹配失败。

输入字符值,并且scanf()功能设置为mach /接受"%d"(十进制数)时,它失败。

© www.soinside.com 2019 - 2024. All rights reserved.