Printf返回时从scanf输入了错误的数字
我写了一些基本代码来学习printf和scanf函数,但是当通过scanf函数输入整数时,printf函数返回的数字完全不同。输入字符时也会发生类似的情况,只有printf函数显示一个正方形。代码有问题吗,还是其他问题Printf返回时从scanf输入了错误的数字,c,printf,scanf,C,Printf,Scanf,我写了一些基本代码来学习printf和scanf函数,但是当通过scanf函数输入整数时,printf函数返回的数字完全不同。输入字符时也会发生类似的情况,只有printf函数显示一个正方形。代码有问题吗,还是其他问题 #include <stdio.h> int main() { char letter; int num1,num2; printf("Enter any one keyboard character: "); scanf("%c",
#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;
}
#包括
int main()
{
字符字母;
int num1,num2;
printf(“输入任意一个键盘字符:”);
scanf(“%c”和字母);
printf(“输入由空格分隔的任意两个整数:”);
scanf(“%d%d”、&num1、&num2);
printf(“数字输出%d和%d\n”、&num1和&num2);
printf(“字母输入%c\n”,&letter);
printf(“存储在%p”处,&字母);
返回0;
}
无论何时输入任何整数或字符,都会显示2686680和2686676来代替整数,并显示一个填充矩形而不是字符
任何帮助都将不胜感激,谢谢
&letter
表示存储了打印F正确的变量letter
的地址。在printf参数中应该只使用字母
,如下所示:
printf("%d\n", letter); // prints the value stored in letter
printf("%p\n", &letter); // prints the address where letter is stored in memory
可能重复的