在这里,readfrom,writeto是可以指定输入输出文件的,
我为了方便,并没有使用这两个接口进行测试,直接使用了默认的stdin和stdout进行io测试。
还记得..是连接符吗?
write("sin (3) = "..sin(3).."\n")
会在终端上输出sin (3) = 0.14112
注意write接口不会自动增加换行符。例如下面的测试,如果想写入一个数字,然后换行,只能这样写。
write("666.123","f<10.3")
write("\r\n")
write("666.123","f>10.3")
write("\r\n")
write("666.123","f|10.3")
write("\r\n")
上面的f>,f<,f|叫做格式化写。看一下输出就知道什么意思了。
这个的f可不是format的意思,是float的意思,10表示输入字符串的宽度,.3表示小数点后的位数
觉得lua代码神奇的人,看看对应的c实现,是不是觉得也很容易。
如果想给写脚本的人提供方面,用你写的c去实现吧。
格式化读取
readtest = read("f5");
print("readret= "..readtest)
无格式化读取
readtest = read();
print("readret= "..readtest)
如果你输入空格,回车后,程序一直等待输入。因为lua实现会忽略前面输入的所有空格
另外write和read基于现在的功能,还是有优化空间的,毕竟是1.0版本。
大家可以测试一下。
如何实现一个lua脚本的循环执行呢,下面这个代码可以做到
loop.lua
print("I am looping")
execute('./lua loop.lua')
然后在终端输入 ./lua loop.lua ,loop.lua这个脚本将被反复执行,直到你按下ctrl+c
看一下execute对应的c代码,大家就都清楚是怎么回事了。