У меня есть следующий код.
import lib
var stat = false
when isMainModule:
while stat != true:
echo("Option: ")
var opt = readChar(stdin)
case opt
of 'q':
stat = true
of 'n':
echo("Salu: ")
var ss = readLine(stdin)
echo("Nam: ")
var nn = readLine(stdin)
let k = prompt("Rust")
else: discard
Я пытаюсь добиться, предлагая и получая пользовательский ввод один за другим для двух переменных. При выборе n
сначала я ожидаю Salu
, а после ввода пользовательского ввода Nam
.
Однако, что я получаю, когда выполняю следующий код nim
, выполнив следующую команду: nim c -r src/mycode.nim
~~> nim c -r src/cmdparsing.nim
...
...
...
CC: stdlib_system.nim
CC: cmdparsing.nim
Hint: [Link]
Hint: operation successful (48441 lines compiled; 2.338 sec total; 66.824MiB peakmem; Debug Build) [SuccessX]
Hint: /home/XXXXX/Development/nim_devel/mycode/src/mycode [Exec]
Option:
n
Salu:
Nam:
Salu
отражается, но readLine
не ждет моего ввода и сразу же повторяет Nam
. Но составленные readLine
команды из процедуры prompt
появляются одна за другой для получения пользовательского ввода.
Мне было интересно, что мне не хватает, чтобы понять здесь. Может ли кто-нибудь просветить меня?
Код для prompt
живет в lib.nim
, а именно:
proc prompt*(name: string): bool =
echo("Salutation: ")
var nn = readLine(stdin)
echo(nn&"."&name)
echo("Diesel")
var dd = readLine(stdin)
echo(dd)
return true