语言的输入
编程语言提供最基本的输入输出,输入一个预期的数据也不是看起来那么简单,如下一一展开。
不同输入形式
- C语言scanf提供格式串输入,程序员负责配置正确的格式,比如%d整型,%s为字符串。可能出现格式串和变量格式、个数不完全匹配,输入的数据异常、错位。但,因为参数是值传递,变量必须取地址传入,才能正确更新。
- C++引入了cin标准输入流对象,使用>>运算符和变量即可,注意变量不用取地址,利用了引用概念,代码舒适度较高。
- Java需要额外创建Scanner对象,显得麻烦。
- Python提供input函数输入,本身属于解释型语言,输入的变量可以被转换成符合要求的任何格式。
- 其他脚本语言用法一般都比较简单,比如read或input即可输入。
带额外字符的输入
额外字符有分隔作用,对于输入反而会产生误解。
- C语言scanf(“%d,%d”, &a, &b)需要输入”,”才能正常解析。就像去银行办业务申请表单有自己的格式,符合格式才能办成功。
- C#没有C语言简洁,需要用Split方法截断:Console.ReadLine().Split(',').
输入不成功
- C语言格式和输入数据不匹配,属于错误,当前变量的数值不确定,输入缓冲区数据被保留给下一个格式数据。
- 不同输入函数共享输入缓冲区,如果前面函数输入不成功,缓冲区数据会保留给下一个输入函数,例如C语言scanf和getchar,如scanf执行后还剩下字符未处理,接下来getchar函数会继续用到前面的字符。
输入的忽略字符
- scanf默认会忽略任何空白字符(换行、空格、制表符),哪怕是%c格式输入一个字符。
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!