尝试使用scanf读取数字时程序崩溃

时间:2014-05-07 11:38:02

标签: c dev-c++

当我运行此代码时,会出现这样的消息。 Project.exe已停止工作

我的其他一些代码有效,但这似乎给我一个错误。

enter image description here

#include<stdio.h>
#include<conio.h>

void main()
{
    int n1, n2, sum;

    puts("first number");
    scanf("%d", n1);
    fflush(stdin);
    puts("second number");
    scanf("%d", n2);
    sum = n1 + n2;

    printf("%d + %d = %d", n1, n2, sum);

    getch();

}

我基本上想要添加两个数字。

1 个答案:

答案 0 :(得分:2)

scanf获取存储输入值的变量的地址。您需要将scanf来电更改为

scanf("%d", &n1);
scanf("%d", &n2);
//          ^ note the & operator

另请注意,在输入流上调用fflush是未定义的行为。因此,fflush(stdin)不正确。您需要手动读取并丢弃stdin流中剩余的无关输入。