#include <stdio.h>
#include <stdlib.h>
void display(char cr,int hang,int lie);
int main(void)
{
int ch;
int rows,cols;
printf("请输入一个字符和两个数字\n");
while((ch=getchar())!='\n')
{scanf("%d %d",&rows,&cols);
display(ch,rows,cols);
printf("请输入一个字符和两个数字\n");
printf("Enter a newline to quit.\n");
}
printf("bey\n");
return 0;
}
void display(char cr,int hang,int lie)
{int row,col;
for(row=1;row<=hang;++row)
{for(col=1;col<=lie;++col)
putchar(cr);
printf("\n");
}
}
该程序开始时运行良好,我输入a 2 3,程序打印两行三列a。然后程序提示输入第二组数据,但是还没等数据程序输入,程序就退出了,这是因为最后按下的enter键,程序是把它当作\n读的,所以跳出循环,程序结束。
#include <stdio.h>
#include <stdlib.h>
void display(char cr,int hang,int lie);
int main(void)
{
int ch;
int rows,cols;
printf("请输入一个字符和两个数字\n");
while((ch=getchar())!='\n')
{
if(scanf("%d %d",&rows,&cols)!=2)
break;
display(ch,rows,cols);
while(getchar()!='\n')
continue;
printf("请输入一个字符和两个数字\n");
printf("Enter a newline to quit.\n");
}
printf("bey\n");
return 0;
}
void display(char cr,int hang,int lie)
{int row,col;
for(row=1;row<=hang;++row)
{for(col=1;col<=lie;++col)
putchar(cr);
printf("\n");
}
}