首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这段代码什么有关问题

2012-02-10 
这段代码什么问题C/C++ code#includestdio.hvoid chline(char,int,int)int main(void){char cint a,b

这段代码什么问题

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

热点排行