编程语言 / 输入输出 / 返回值 · 2023年 10月 15日 0

输入输出返回值

20 次浏览

大部分情况下,输入输出函数返回值没有被特别关注,但在某些情况下,这些返回值格外有研究意义。

返回值的不同形态

  • C语言printf和scanf返回值分别为输出字节个数以及成功输入的变量个数。
    • 大部分情况下,printf返回个数并不关心,可以在调用函数前面加(void)强制忽略返回值。
  • C++ cout/cin为流对象,重载<<和>>运算符,依然返回流对象引用ostream &或istream &, 以便于多个变量输出输入。当然,流对象提供状态判断是否有异常。
  • Java println返回值为void, Scanner的next*函数返回对应数据类型,如果有错误,会抛出异常,如InputMismatchException.
  • C# Console类Read返回int, 如有异常抛出IOException, 如输入浮点数额外需要double.Parse(), ReadLine返回字符串,和Read一样可能抛出异常,异常更多,如OutOfMemoryException等。
  • Python print返回值为void, input返回字符串类型。
  • Shell更接近用户,输入和输出默认使用内置方法,read和echo可以支持不同展示形态,同时也提供printf命令,和C语言printf格式形式极其相似。为了更好支援用户输入交互,read提供-t参数指定输入超时时间。