求助求助!有没有大神可以给我讲解下scanf输入printf输出后的值不一样
如题:一直想不到自己居然会出这种小问题
#include<stdio.h>
void main()
{
int i;
char a;
for(i=1;i<5;i++)
{
scanf("%d\n",&a);
printf("%d\n\n",a);
} }
以上代码通过数组动态赋值,可以我打印输出的却不一样;
a输入0 ,打印不出来;
a输入1 ,打印出0;
a输入2, 打印出1;
而用getchar根本打印不出正确值,这两问题完全不知道是怎么回事?
#include<stdio.h>
void main()
{
int i;
char a;
for(i=1;i<5;i++)
{
getchar("%d\n",a);
printf("%d\n\n",a);
} } 好无奈的输出
#include<stdio.h>
void main()
{
int i;
int a;
for(i=0; i<5; i++)
{
scanf("%d\n",&a);
printf("%d\n\n",a);
}
}
如果scanf的参数里是%d,那后边的参数需要是int的,%c才是char,
printf同理. lililice 发表于 2015-3-1 14:15
如果scanf的参数里是%d,那后边的参数需要是int的,%c才是char,
printf同理.
char a换成int a;
还是上面同样的问题,都是打印出的 前一个a赋值; scanf("%d\n",&a);
换成
scanf("%d",&a);
试试,
scanf里的\n去掉 刚刚忘了改成int a;
不过int对应%d 但输出的还是前一个a的赋值;
lililice 发表于 2015-3-1 14:29
scanf("%d\n",&a);
换成
scanf("%d",&a);
我去......真的好了,好神奇,大概懂了,失误啊。哎......谢啦{:5_91:} 好了解决了,小问题耽搁了这么长时间,没想到被一个\n 。。。。。。。谢谢 @lililice ResoulㄨEvermat 发表于 2015-3-1 14:36
好了解决了,小问题耽搁了这么长时间,没想到被一个\n 。。。。。。。谢谢 @lililice
客气
页:
[1]