这段代码什么问题
- C/C++ code
#include<stdio.h>void chline(char,int,int);int main(void){ char c; int a,b; printf("Enter a character(q to exit):"); while((c=getchar())!='q') { while(getchar()!='\n'); printf("start?"); while(!scanf("%d",&a)) { printf("Error!"); while(getchar()!='\n'); } printf("end?"); while(!scanf("%d",&b)) { printf("Error!"); while(getchar()!='\n'); } chline(c,a,b); printf("Enter a character(q to exit):"); } return 0; }void chline(char ch,int i,int j){ int n,m; for(n=1;n<i;n++) putchar(' '); for(m=n;m<=j;m++) putchar(ch); putchar('\n');}输入一个字符,然后再指定的列数中打印
代码运行后有时正常,有时输出几个空行
[解决办法]
呃……这么多while啊……
你的程序第一次运行没问题,连续赋值的时候ch的值不能从键盘输入中得到。
原因是你最后输入b的值之后输入的字符将是下次循环得到的c的值,在这里除第一次外,c每次得到的值都是回车,即ASCII码10,换行符,输入换行符就可想而知了,肯定是空行!