【问题标题】:Printf is returning with wrong numbers inputted from scanfPrintf 返回从 scanf 输入的错误数字
【发布时间】:2014-03-03 19:55:25
【问题描述】:

我正在编写一些基本代码来学习 printf 和 scanf 函数,但是当通过 scanf 函数输入整数时,printf 函数返回完全不同的数字。输入字符时也会发生类似的情况,只是 printf 函数显示一个正方形。是代码有问题,还是其他问题?

#include <stdio.h>
int main()
{
    char letter;
    int num1,num2;
    printf("Enter any one keyboard character:  ");
    scanf("%c", &letter);
    printf("Enter any two integers separated by a space:  ");
    scanf("%d %d", &num1, &num2);

    printf("Numbers output %d and %d \n" , &num1, &num2) ;
    printf("letter input %c\n" , &letter) ;
    printf("stored at %p" , &letter) ;
    return 0;
}

每当输入任何整数或字符时,都会显示 2686680 和 2686676 来代替整数,并显示填充的矩形而不是字符。

任何帮助将不胜感激,谢谢!

【问题讨论】:

标签: c printf scanf


【解决方案1】:

&amp;letter 表示变量letter 的地址存储的printf 是正确的。您应该在 printf 参数中仅使用 letter 作为,

 printf("%d\n", letter); // prints the value stored in letter

 printf("%p\n", &letter); // prints the address where letter is stored in memory

【讨论】:

    猜你喜欢
    • 2014-12-11
    • 2020-11-14
    • 2023-03-09
    • 1970-01-01
    • 2012-11-24
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多