当前位置:   article > 正文

scanf()分隔符_scanf输入分隔符

scanf输入分隔符

昨天遇到一个scanf的小问题。

  1. char name[10];
  2. char num[10];
  3. scanf("%s,%s", name, num);
  4. puts(name);
  5. puts(num);


预期:

Input:

xiaoming,38

output:

xiaoming

38


实际操作:
Input:

xiaoming,38

output:

xiaoming,38

空行


从scanf的角度考虑,第一,既然输入能有分隔符隔开,所以scanf有责任将输入中的逗号识别为分隔符,另一方面逗号又是一个可以包含在字符串中的字符。试想,如果输入中出现很多逗号,那么scanf矛盾起来,不知道用那种方式处理,而上面看到,它选择了将逗号作为字符串的一部分。

当然,因为scanf不将空白字符(white space)。一般,程序中所指的空白字符是指空格(space),回车(enter)和指标符(table)纳入到字符串中,所以可以将空白字符作为分隔符。另外,也可以换成get类函数。仅记之。

不知道标准中有没有相关说明。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/键盘狂人/article/detail/62713
推荐阅读
相关标签
  

闽ICP备14008679号