c - 出现一个额外的输入

标签 c input scanf

例如,当我为 num1 输入 2,为 num2 输入 3 时,我希望在输入第二个数字后立即得到 8 作为输出。但是,程序要求我再输入一个整数,而我只是输入一个随机数,如 242,它仍然输出 8,这意味着它不影响结果。所以我的问题是为什么会有第三个输入? 感谢您的帮助!

#include "stdafx.h"

int Power (int num1, int num2);

int main ()
{
    int a, b;
    puts ("Enter two numbers, a and b:\n");  
    scanf ("%i\n", &a);
    scanf ("%i\n", &b);
    printf ("%i\n", Power(a, b));
    return 0;
}

int Power (int num1, int num2)
{
    int sum=1;
    for (int i=1; i<=num2; i++){
        sum= sum*num1;
    }
    return sum;
}

最佳答案

去掉换行符:\n,在你的 scanf 格式字符串中,或​​者只使用一个 scanf,例如:

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

或者:

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

关于c - 出现一个额外的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161861/

相关文章:

javascript - 自动完成输入文本事件

html - 位置绝对 css 在输入标签中不起作用

c - 搜索和读取文本文件

c - 允许使用 ‘scanf’ 输入空格

c++ - C 'switch' 用法?

c - 二维数组作为连续的内存块

c - KDS——最终启动顺序错误

c - C中信号量的实现

java - 实时替换用户输入击键(Java)

c++ - 解析数据,scanf?