返回信息流int main(void)
{
int x,y;
char z;
printf("please input two integers\n");
scanf("%d %d",&x,&y);
printf("please input a char what your want input\n");
scanf("%c",&z);
chline(z,x,y);
return 0;
}
int main(void)
{
int x,y;
char z;
printf("please input a char what your want input\n");
scanf("%c",&z);
printf("please input two integers\n");
scanf("%d %d",&x,&y);
chline(z,x,y);
return 0;
}
一样吗???
这是一条镜像帖。来源:北邮人论坛 / cpp / #74722同步于 2013/10/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
各位神,谁能帮我回答一下这个简单的问题。
z525671143
2013/10/23镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
scanf("%d %d",&x,&y)之后,需要有个getchar()来清楚缓冲区的回车,否则回车会被作为scanf("%c",&z);的输入,你给的第二个写法就不存在这个问题,scanf会忽略缓冲区的空白符,比如回车,但是当接受%c的时候例外,这就是这里出问题的原因
#include<iostream>
void chline(const char cInput, const int row, const int column)
{
for(int i = 0; i < row; ++i)
{
for(int j = 0; j < column; ++j)
{
std::cout<<cInput<<"\t";
}
std::cout<<std::endl;
}
}
int main(void)
{
int x,y;
char z;
printf("please input two integers\n");
scanf("%d %d",&x,&y);
getchar();
printf("please input a char what your want input\n");
scanf("%c",&z);
chline(z,x,y);
return 0;
}
这个问题,我记得在ACM某题里面遇到过
【 在 z525671143 的大作中提到: 】
: int main(void)
: {
: int x,y;
: ...................