C语言问题:程序运行时为什么多了一个回车?

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:34:46
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp;
char a;
int i;
if((fp=fopen("f:\\00.txt","w"))==NULL)
{
printf("找不到这文件\n");
}
for(i=0;i<10;i++)
{
printf("请输入第%d个a的值:",i+1);
scanf("%c",&a);
fputc(a++,fp);
}
fclose(fp);
printf("执行结束\n");
}
当你执行这个程序时,输入第一个a的值之后就跳到输第三个a的值那去了,第二个a的值不让我输,明显是多了个回车,为什么?
经常遇到这种情况,是怎么回事??

在输入后面加上getchar(),注意要加头文件<conio.h>

#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp;
char a,ch;
int i;
if((fp=fopen("f:\\00.txt","w"))==NULL)
{
printf("找不到这文件\n");
}
for(i=0;i<10;i++)
{
printf("请输入第%d个a的值:",i+1);
ch=getchar();
scanf("%c",&a);
fputc(a++,fp);
}
fclose(fp);
printf("执行结束\n");
} 接受回车ch=getchar();