c语言的scanf接收到底是忽略空格还是不忽略呢?
5个回答
展开全部
举几个例子,或许你就对这个函数理解了,由于一般都是用这两个字符控制输入的,所以只讨论空格回车的情况
1.输入数据为非char类型的情况:
int a, b;
scanf("%d%d",&a,&b);
此时的输入方式可以是1空格2
或者1空格空格。。2
或者1回车2
或者1回车回车。。2
此时可以得出结论,scanf接收不但忽略空格还忽略回车
int a, b;
scanf("%d,%d",&a,&b);
此时的输入方式可以是1,空格2
或者1,空格空格。。2
或者1,回车2
或者1,回车回车。。2 (只需要保证1紧接着逗号就行,随便奇葩的输入都正确)
此时可以得出结论,scanf接收不但忽略空格还忽略回车,但是在有逗号的情况下必须遵循一定的格式,否则出错。
2.再看输入数据为char类型的情况:
char a, b;
scanf("%c%c",&a,&b);// 或者scanf("%c,%c",&a,&b);
此时的输入只能按格式来,不会忽略任何字符。
就说这么多了,可能你考虑的比较多,我有没说到的,若有疑问可以提出来一起讨论下
1.输入数据为非char类型的情况:
int a, b;
scanf("%d%d",&a,&b);
此时的输入方式可以是1空格2
或者1空格空格。。2
或者1回车2
或者1回车回车。。2
此时可以得出结论,scanf接收不但忽略空格还忽略回车
int a, b;
scanf("%d,%d",&a,&b);
此时的输入方式可以是1,空格2
或者1,空格空格。。2
或者1,回车2
或者1,回车回车。。2 (只需要保证1紧接着逗号就行,随便奇葩的输入都正确)
此时可以得出结论,scanf接收不但忽略空格还忽略回车,但是在有逗号的情况下必须遵循一定的格式,否则出错。
2.再看输入数据为char类型的情况:
char a, b;
scanf("%c%c",&a,&b);// 或者scanf("%c,%c",&a,&b);
此时的输入只能按格式来,不会忽略任何字符。
就说这么多了,可能你考虑的比较多,我有没说到的,若有疑问可以提出来一起讨论下
展开全部
复制粘贴一大堆全是废话,scanf("%c",&c)时,接受空格,其他时候忽略空格。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
① 遇空格、“回车”、“跳格”键。
② 遇宽度结束。
③ 遇非法输入。
① 遇空格、“回车”、“跳格”键。
② 遇宽度结束。
③ 遇非法输入。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空格被忽略掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询