请问我这个程序想输入输出5个数。输出正常,但是输入需要输入6个数。请问哪里有问题?
scanf 需要遇到非空白符才会继续,而且会忽略连续的换行符,你可以试试不停的回车,也是会被忽略。
你试试这个,如果不行再清空以下缓冲区 fflush(stdin);
scanf(" %d", p++);
代码修改如下,将scanf里面的\n给去掉就可以了。
#include "stdio.h"
#define N 5
int main()
{
int i,a[N],*p;
p=a;
for(i=0;i<N;i++)
{
scanf("%d",p++);
}
p=a;
for(i=0;i<N;i++)
printf("%d\t",*p++);
puts("\n");
}
scanf 里面的换行符去掉,
换行符是遇到非空白字符才停止输入,这会导致你有数据没有正确读取