可编程科学计算器帮助:系统函数
函数名 | 函数帮助信息 |
---|---|
::mfp::io::console::input(3) : input(prompt,input_type,default_value)在命令控制台上打印出基于字符串的提示符prompt并等待用户输入。第二个参数input_type,以及第三个参数default_value,都是可选参数。在现阶段,如果第二个参数存在,并且它值是字符串"s"或者"S",用户的输入将会被当作一个字符串并且函数将会返回这个字符串。如果第二个和第三个参数均存在,并且第二个参数是"default"或者"DEFAULT",第三个参数将会作为缺省值。这个缺省值将在用户直接输入回车或者空格再回车的时候被函数作为返回值。除了前述这两种情况,本函数将把用户的输入看作是一个表达式,表达式的值作为返回值返回。如果用户输入不是一个合法的表达式,本函数会重新打印提示符要求用户再次输入。用户的一次输入由ENTER键结束。如果用户输入了多行,仅仅第一行会被读取。比如,用户运行input("$", "S"),然后在提示符后输入4 + 3,再按回车,这个函数返回一个字符串"4 + 3",如果用户运行input("%"),然后再提示符后输入4 + 3,再按回车,这个函数返回7。如果用户运行input("#", "default", "e"),然后再提示符后输入空格并回车,本函数返回字符串"e"。 |
|
::mfp::system::pause(1) : pause(message)将暂停当前运行的程序,等待用户输入一个回车,然后继续。字符串参数message可以省略。如果不省略,message将作为提示被打印在屏幕上。 |
|
::mfp::io::console::print(1) : print(x)向输出端打印任意数据类型x的值。 |
|
::mfp::io::console::print_line(1) : print_line(x)向输出端打印任意数据类型x的值然后再起一行。注意x是一个可选参数,它的缺省值是空字符串""。 |
|
::mfp::io::console::printf(1...) : printf(format_string, ...),sprintf(format_string, ...)和fprintf(fd, format_string, ...)和C/C++中的对应函数工作方式相似。这些函数通过format_string和其后的数值参数构造出一个新的字符串,printf函数将字符串打印到标准输出,sprintf函数将字符串作为返回值返回,fprintf函数则将字符串输出到文件号为fd的文本文件。字符串format_string支持输入整数(%d、%i、%x等),浮点数(%e、%f等),字符和字符串(%c和%s)等等。用户可以在C语言的帮助文档中找到format_string的构造方法。例如,printf("Hello world!%f", 3.14)将会打印输出"Hello world!3.140000",而sprintf("%c%d", "A", 9)则返回"A9"(注意MFP不支持单一字符数据类型,所以单一的字符将会存储为一个只包括一个字符的字符串)。 |
|
::mfp::io::console::scanf(1) : scanf(format_string),sscanf(input_from, format_string)和fscanf(fd, format_string)和C/C++中的对应函数工作方式相似。scanf读取用户的一行输入,sscanf读取字符串input_from,fscanf从文件(文件号fd)中读取文件内容。字符串format_string支持输入整数(%d、%i、%x等),浮点数(%e、%f等),字符和字符串(%c和%s)等等。用户可以在C语言的帮助文档中找到format_string的构造方法。但是,和C语言有所不同,MFP中的这些函数不需要输入用于存储读取数值的参数。所有的读取的数值将会保存在一个数组中作为返回值返回。比如,sscanf("3Hello world!", "%d%c%c%s")将会返回[3, "H", "e", "llo"](注意MFP不支持单一字符数据类型,所以单一的字符将会存储为一个只包括一个字符的字符串)。 |
|
::mfp::system::sleep(1) : sleep(x)休眠x毫秒(x必须为正实数),此函数不返回任何值。 |
|
::mfp::system::system(1) : system(str_array)有一个参数。该参数必须是一个字符串或者是一个字符串数组。如果该参数是一个字符串,system运行该字符串所代表的系统指令并且返回该系统指令的返回值。注意系统指令必须是一个可执行的文件以及它的命令参数。由于这个原因,在Windows平台上,诸如system("dir")无法正确执行是因为dir并非是一个单独的可执行文件,而是cmd.exe的一个内部功能。要执行dir指令,用户需要运行system("cmd /c dir")。如果该参数是一个字符串数组,那么该数组的每一个元素是一个将为system函数运行的系统指令的一部分。比如,在Linux平台上,用户想要把文件file1重命名为file2需要运行系统指令"sh -c mv file1 file2",注意由于我们不是在shell中,这里的"sh -c"是不可以省略的。这时,如果要调用system函数执行上述命令,正确的写法是system(["sh", "-c", "mv file1 file2"]),原因是"mv file1 file2"是sh的一个内部指令,它不能够被分割为几个部分。还要注意,在现阶段,这个函数只能将系统指令的输出打印出来,还无法接受在运行中用户对于该系统指令的输入。此外,如果该系统指令不存在,则会抛出异常。 |