C语言学的半吊子,为什么输出结果不一样呢?

cykabc 2016-09-24 09:58:02
#include <stdio.h>
void display(char cr,int lines,int width);
int main(void)
{

int ch;
int rows,cols;
printf("Enter a character an two integers:\n");
while((ch=getchar())!='\n')
{

scanf("%d,%d",&rows,&cols);

display(ch,rows,cols);

printf("Enter a character and two integers:\n");
printf("Enter a newline to quit.\n");

}
printf("Bye.\n");
return 0;
}
void display(char cr,int lines,int width)
{
int row,col;
for(row=1;row<=lines;row++)
{
for(col=1;col<=width;col++)

putchar(cr);

putchar('\n');
}
}
输出结果为什么是这样呢
输入:C 2 3[enter]
输出:


Enter a character and two integers:
Enter a newline to quit.


Enter a character and two integers:
Enter a newline to quit.
Bye.
...全文
312 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-09-26
  • 打赏
  • 举报
回复
输入两个随便什么字符间隔的整数。 仅供参考:
#include <stdio.h>
int main()
{
    int a,b,n,v,r,k;
    char buf[80];
    char *p;

    k=0;
    r=EOF;
    while (1) {
        if (EOF==r) {
            fgets(buf,80,stdin);
            p=buf;
        }
        while (1) {
            r=sscanf(p,"%d%n",&v,&n);
            if (1==r) {k++;break;}
            if (EOF==r) break;
            p++;
        }
        if (EOF==r) continue;
        p+=n;
        if (1==k) a=v;
        if (2==k) {
            b=v;
            break;
        }
    }
    printf("%d,%d\n",a,b);
    return 0;
}
小灸舞 版主 2016-09-26
  • 打赏
  • 举报
回复
scanf()是一个比较严格的函数,何谓严格,首先函数中是否包含空白/非空白字符对输入格式的影响很大:
比如:scanf("%d,%d",&a,&b); scanf中有一个逗号,所以输入的格式应该是2,3==>a=2,b=3
scanf("%d%d",&a,&b); 可以用空格或回车来分隔两个输入 如 45==>a=4,b=5
scanf("%d %d",&i,&j); 与上面相同
paschen 2016-09-24
  • 打赏
  • 举报
回复
或者输入的时候,输入 C 2,3
paschen 2016-09-24
  • 打赏
  • 举报
回复
scanf("%d,%d",&rows,&cols); 改成 scanf("%d%d",&rows,&cols);
wsbdmm 2016-09-24
  • 打赏
  • 举报
回复
但你那逗号不能省略啊
cykabc 2016-09-24
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
要和 "%d,%d" 格式对应, 应该判断 scanf 读取 返回的个数 C 2, 3[enter]
在输入过程中,scanf()不是可以跳过空格、制表符和换行符的吗?输入c 2 3,是不是可以理解为ch='c',rows=2,cols=3?
zgl7903 2016-09-24
  • 打赏
  • 举报
回复
要和 "%d,%d" 格式对应, 应该判断 scanf 读取 返回的个数 C 2, 3[enter]

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧