在我的ATS应用程序中,我尝试从用户读取输入字符串。ATS中有没有和C中的scanf函数执行类似功能的函数?如果不是,如何在不将ATS与JS或HTML集成的情况下获得用户的输入。
发布于 2016-11-23 05:53:13
下面是一个从STDIN读取数据的简单方法:
#include
"share/atspre_staload.hats"
#include
"share/HATS/atspre_staload_libats_ML.hats"
implement
main0() =
{
//
val
lines =
streamize_fileref_line(stdin_ref)
//
val () = lines.foreach()(lam x => println! (x))
//
} (* end of [main0] *)发布于 2016-11-23 05:45:30
如果你编译成C,那么scanf是可用的。下面是一个简单的例子:
#include
"share/atspre_staload.hats"
#staload
"libats/libc/SATS/stdio.sats"
implement
main0() =
{
//
var str1 = @[char][1024]()
var str2 = @[char][1024]()
//
val () = println! ("Enter name: ")
val ec = $extfcall(int, "scanf", "%s", addr@str1)
val () = assertloc (ec != 0)
val str1 = $UNSAFE.cast{string}(addr@str1)
//
val () = println! ("Enter your website name: ")
val ec = $extfcall(int, "scanf", "%s", addr@str2)
val () = assertloc (ec != 0)
val str2 = $UNSAFE.cast{string}(addr@str2)
//
val () = println! ("str1 = ", str1)
val () = println! ("str2 = ", str2)
//
}https://stackoverflow.com/questions/40751473
复制相似问题