读书人

这段代码什么有关问题

发布时间: 2012-02-10 21:27:42 作者: rapoo

这段代码什么问题

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,换行符,输入换行符就可想而知了,肯定是空行!

读书人网 >C++

热点推荐