c++ - 为什么scanf需要额外的参数?

标签 c++ c scanf

我是 C++ 及其开发的新手,我曾经扫描以获取输入参数。但是我给了两个输入参数。但是程序允许我输入额外的参数。请解释为什么会这样。请在下面找到我使用的代码。

#include <iostream>

int main(int argc, const char * argv[]) {

    int a,b;


    scanf("%i %i ",&a,&b);

    printf("a-> %i",a);
    printf("b-> %i",b);

    return 0;
}

输出(允许40作为额外参数)

20
    30
    40
    a-> 20b-> 30Program ended with exit code: 0

最佳答案

scanf takes extra parameter why?

这不是一个准确的结论。额外的输入留在输入流中。 scanf 不使用它。它在程序结束时被丢弃。

如果你有另一个 scanf 行,

scanf("%d", &c);

40 将被读入 c

关于c++ - 为什么scanf需要额外的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738855/

相关文章:

c++ - 在循环中对 vector 进行排序

python - 将嵌入式 Python 异常传播到 C++

C++ Tensorflow lite,某些函数的 undefined reference

c - 显示 Float 6 位小数,带 2 位小数舍入

C++删除构造函数

c - 树莓派,循环延时功能

exit() 能否终止进程?

c - 从输入中读取多个值类型以在 c 中生成链表

c++ - 输入不在 C++ 中的 scanf 中终止

c - 为什么这个函数会无限循环?