无法在c中获得整数输入

时间:2016-09-24 18:43:34

标签: c input int scanf

我真的不知道出了什么问题。这可能是非常简单的事情,但我无法找到错误。我在C中写了这个非常简单的程序:

#include<stdio.h>

int main(void) {

    int n;
    scanf("%d", &n);
    printf("\n%d", &n);

    return 0;
}

但是当我跑步时,这就是我得到的:

1  // My input

-1936471972

我做错了什么?

提前致谢!

4 个答案:

答案 0 :(得分:2)

我发布其他人已经指出的内容:

int main(void) {

    int n;
    scanf("%d", &n);
    printf("%d\n", n);
              ^^  ^ 
    return 0;
}

如果您只想显示变量的值(基本上是打印变量的地址)并移动{{},请从&移除&n 1}}按照Weather Vane的说明打印变量后。

答案 1 :(得分:0)

使用

printf("%d\n", n);

而不是

printf("\n%d", &n);

答案 2 :(得分:0)

if(myObject.Is( '.example' ) { //Do stuff } 将变量地址作为参数,但scanf获取变量值。尝试将行更改为

printf

答案 3 :(得分:0)

  

我真的不知道出了什么问题。

printf("\n%d", &n);使用"%d"的打印说明符,期望int&nint地址。真正有用的是现代编译器和编译器及其警告功能很好,会自动警告此错误。这可以节省您的时间!不需要SO帖子。

精通编码人员使用像编译器这样的工具,可以很好地启用警告,并专注于编译器无法检测到的细微问题。使用printf("\n%d", n);printf("%d\n", n);可能会解决当今的小问题,但使用更好的编译环境确实可以从中学习。