https://www.cnblogs.com/yeungchie/

几种 print 函数的差异

print

  • 接收任意的数据类型,并打印到 CIW
print( 12345 )        ; 12345
print( "YEUNGCHIE" ) ; "YEUNGCHIE"
print( winId ) ; window:1
print( cvId ) ; db:0x21e4c01a
  • 第二参数可选指定 IO 句柄
print( "String" port )
  • 返回值恒为 nil

println

  • print 区别在于 println 打印一个数据后会自动换行

举个例子,同时运行 3 个 print

print( 1 ) print( 2 ) print( 3 )
; 123

同时运行 3 个 println

println( 1 ) println( 2 ) println( 3 )
; 1
; 2
; 3

printf

  • 格式化输出字符串
  • 第一个参数定义输出字符串格式 format,例如下面能够识别其中的 转义符(\) 和 字符串占位符(%s)
  • 从第二个参数开始会依次替换 format 中定义的 占位符
who = "YEUNGCHIE"
printf( "My name is %s and weight is %d kg\n" who 999 )
; My name is YEUNGCHIE and weight is 999 kg
  • 输出成功,返回 t,输出不成功都是报 error。

更详细的使用方法可以看以前的这篇随笔 [ Skill ] 中的通用输出格式规范

fprintf

  • printf 的区别是,用来输出到 IO 句柄(可以用来输出到文件)
file = outfile( "~/text.txt" )
fprintf( file "My name is %s and weight is %d kg\n" "YEUNGCHIE" 999 )
close(file)
  • 将会生成一个文件 ~/text.txt
> cat ~/text.txt
My name is YEUNGCHIE and weight is 999 kg
  • 成功输出到文件即返回 t

sprintf

  • fprintf 的区别是,不直接打印结果,而是将结果作为函数的输出,你可以赋值给 变量
sprintf( variable "My name is %s and weight is %d kg\n" "YEUNGCHIE" 999 )
variable = sprintf( nil "My name is %s and weight is %d kg\n" "YEUNGCHIE" 999 )
; "My name is YEUNGCHIE and weight is 999 kg"

上面两句的效果是一样的,variable 将会被赋值为格式化后的字符串。

  • 成功格式化即返回字符串内容

lsprintf

  • sprintf 的区别是,第一个参数不用于指定被赋值的变量。
string = lsprintf( "My name is %s and weight is %d kg\n" "YEUNGCHIE" 999 )
  • 成功格式化即返回字符串内容
  • 当输出的参数数量不确定的时候这个函数非常好用,举个例子:
format = "My name is %s and weight is %d kg\n"
args = list( "YEUNGCHIE" 999 )
string = apply( 'lsprintf format args )
; "My name is YEUNGCHIE and weight is 999 kg"
  • 当然 sprintf 也不是做不到,只不过会比较麻烦。
string = apply(
lambda(( a \@rest b )
apply( 'sprintf nil a b )
)
format
args
)
; "My name is YEUNGCHIE and weight is 999 kg"

[ Skill ] print println printf fprintf sprintf lsprintf的更多相关文章

  1. java中print\println\printf的区别

    print\println\printf的区别 print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后. println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光 ...

  2. 精通awk系列(13):print、printf、sprintf和重定向

    回到: Linux系列文章 Shell系列文章 Awk系列文章 输出操作 awk可以通过print.printf将数据输出到标准输出或重定向到文件. print print elem1,elem2,e ...

  3. PHP中的输出:echo、print、printf、sprintf、print_r和var_dump

    大家在面试中,经常会被问到的问题: 请简要说明PHP的打印方式都有哪些? 或者直接点问: 请说明echo.print.print_r的区别 看着很简单,一般会出现在初中级的笔试题中.但是要真正说明白这 ...

  4. printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数

    参考:http://blog.sina.com.cn/s/blog_674b5aae0100prv3.html 总览 (SYNOPSIS) #include <stdio.h> int p ...

  5. [misc]printf/fprintf/sprintf/snprintf函数

    转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549 需要包含的头文件 #include <stdio.h> int pr ...

  6. printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换

    总览 (SYNOPSIS) #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream ...

  7. Java中print、printf、println的区别(转载)

    printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.p ...

  8. Java:print、printf、println的区别

    printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.p ...

  9. Java中print()、printf()、println()的区别?

    区别: 1.printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 2.print就是一般的标准输出,输入信息后不会换行 3.println输入信息会换行 参照JAVA API的定 ...

随机推荐

  1. halcon视觉入门钢珠识别

    halcon视觉入门钢珠识别 经过入门篇,我们有了基础的视觉识别知识.现在加以应用. 有如下图片: 我们需要识别图片中比较明亮的中间区域,有黑色的钢珠,我们需要知道他的位置和面积. 分析如何识别 编写 ...

  2. 集合remove()方法相关问题

    学习集合的过程中,了解到一个有关于remove()方法的有关特性,特此记录 首先remove方法的格式: collection.remove(Object o); 这是指对集合collection内的 ...

  3. Spring service本类中方法互相调用事物失效问题

    简介 Spring事物利用的是AOP,动态代理采用CGLIB代理(默认,也可以用Proxy代理,但是Proxy代理效率低于CGLIB代理).故只要弄懂Spring的AOP实现,就知道为什么servic ...

  4. 解决Android3.0之后不能在主线程中进行HTTP请求

    感谢大佬:https://www.cnblogs.com/falzy/p/5763848.html 在Android3.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求,运行时 ...

  5. Docker的数据管理(下)——docke镜像的创建

    Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...

  6. AI模型运维——GPU性能监控NVML和DCGM

    最近一年负责运维的GPU主机越来越多,发现现有的监控项无法很好的了解GPU的性能和负载情况,研究了下官方文档,在此记录. 一.NVML和DCGM NVML:https://developer.nvid ...

  7. Linux组管理

    首先查看文件所有者.文件所在组等信息:ls -l 1.改变文件所有者:chown 用户名 文件名 执行 chown xm Hello.java 后,可以看到文件所有者现在是属于xm这个用户的了 2.改 ...

  8. Pytest用例编写1

      一.编写pytest测试样例非常简单,只需要按照下面的规则: 测试文件以test_开头(以_test结尾也可以) 测试类以Test开头,并且不能带有 __init__ 方法 测试函数以test_开 ...

  9. Java泛型详解,史上最全图文详解!

    泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它. 毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课. 一:泛型本质 Java 泛型(gen ...

  10. 「Python实用秘技06」逐行监听Python程序的内存消耗

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第6期 ...