[ Skill ] print println printf fprintf sprintf lsprintf
https://www.cnblogs.com/yeungchie/
几种 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的更多相关文章
- java中print\println\printf的区别
print\println\printf的区别 print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后. println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光 ...
- 精通awk系列(13):print、printf、sprintf和重定向
回到: Linux系列文章 Shell系列文章 Awk系列文章 输出操作 awk可以通过print.printf将数据输出到标准输出或重定向到文件. print print elem1,elem2,e ...
- PHP中的输出:echo、print、printf、sprintf、print_r和var_dump
大家在面试中,经常会被问到的问题: 请简要说明PHP的打印方式都有哪些? 或者直接点问: 请说明echo.print.print_r的区别 看着很简单,一般会出现在初中级的笔试题中.但是要真正说明白这 ...
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换函数
参考:http://blog.sina.com.cn/s/blog_674b5aae0100prv3.html 总览 (SYNOPSIS) #include <stdio.h> int p ...
- [misc]printf/fprintf/sprintf/snprintf函数
转自:http://blog.csdn.net/To_Be_IT_1/article/details/32179549 需要包含的头文件 #include <stdio.h> int pr ...
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换
总览 (SYNOPSIS) #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream ...
- Java中print、printf、println的区别(转载)
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.p ...
- Java:print、printf、println的区别
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.p ...
- Java中print()、printf()、println()的区别?
区别: 1.printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 2.print就是一般的标准输出,输入信息后不会换行 3.println输入信息会换行 参照JAVA API的定 ...
随机推荐
- Codeforces Round #738 (Div. 2)
Codeforces Round #738 (Div. 2) 跳转链接 A. Mocha and Math 题目大意 有一个长度为\(n\)的数组 可以进行无数次下面的操作,问操作后数组中的最大值的最 ...
- C++学习Day 1
c++的函数需要声明才能再写他的定义,声明可以写多次,如果执行在main之前可以不写,全写不会犯错,现在看好像c++的函数定义里没有out,也没有变量的public和private(后面有再改) 声明 ...
- NumPy 秘籍中文第二版·翻译完成
原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 Apache ...
- 「LOJ 6373」NOIP2017 普及组题目大融合
NOIP2017 普及组题目大融合 每个读者需要有某个后缀的书,可以暴力map,复杂度\(o(9*nlog(n))\),也可以反串建trie树,复杂度\(o(9*n)\). 故可以求出需要的最少的RM ...
- elasticsearch之mappings parameters
目录 ignore_above 返回elasticsearch目录 ignore_above#top 长度超过ignore_above设置的字符串将不会被索引或存储(个人认为会存储,但不会为该字段建立 ...
- 生成静态库.a文件和动态库.so文件
转载来源:https://www.cnblogs.com/hookjc/ 静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m ...
- NSMutableString练习
从要求讲3个520it拼接在一起 会生成很多新的字符串 NSString *res = @""; NSString *subStr = @"520"; // 1 ...
- Java面试-常见基础笔试题目
1. Vector, ArrayList, LinkedList的区别 Vector:①长度可变,以类似数组的形式存储于内存中,线程安全(同步),因为其大部分方法都有synchronized 关键字, ...
- Solution -「多校联训」Sample
\(\mathcal{Description}\) Link (稍作简化:)对于变量 \(p_{1..n}\),满足 \(p_i\in[0,1],~\sum p_i=1\) 时,求 \(\ma ...
- Solution -「CF 1491H」Yuezheng Ling and Dynamic Tree
\(\mathcal{Description}\) Link. 做题原因:题目名. 给定一个长度 \(n-1\) 的序列 \(\{a_2,a_3,\cdots,a_n\}\),其描述了一棵 \ ...