Closed kujirahand closed 3 months ago
https://github.com/kujirahand/nadesiko3/pull/1447 の副作用ではないかと指摘していただきました。調査します。
確かに、sys.__linereaderをコメントアウトすると、ctrl + cで止まりました。
npm i -g nadesiko3-server
でサーバーをインストールした後、下記のコードを実行すると、ctrl + cでサーバーが停止しません。非同期処理で毎行読み出しを行う弊害かと思います。
!「nadesiko3-server.mjs」を取り込む。
3030でWEBサーバ起動した時には
「サーバーが起動しました」と表示。
ここまで。
「/」へWEBサーバGETした時には
「hello」をWEBサーバ出力。
ここまで。
加えて、以下の問題もクリアできなていないといけません。 https://nadesi.com/cgi/kaizen3/?m=thread&threadid=66
以下のように、cnako で入力をリダイレクトで入れた時に、2回目以降の尋ねる命令が使用できません。
ソースコード (code.nako3)
名前は『あなたの名前は?』と尋ねる
「{名前}さんこんにちは」と表示
年齢は『あなたの年齢は?』と尋ねる
「{年齢}歳! 若い!」と表示
入力(input.txt)
TumoiYorozu
1
cnako3 code.nako3 < input.txt
出力 あなたの名前は?123 123さんこんにちは あなたの年齢は?
現在、競技プログラミングサイト AtCoder の言語アップデートにて、なでしこ3が使用可能になりつつ調整中なのですが、リダイレクトで複数行の入力を受け取れないので、入力が複数行ある問題が解けなくなってしまっています。 https://atcoder.jp/contests/language-test-202301/submissions/40365113
入力が1行だけの問題は解けてACが取れます https://atcoder.jp/contests/language-test-202301/submissions/40365743
C だと isatty() を使って判別して切り替える方法がとれるようです: https://daily.belltail.jp/?p=230
Javascript でも isTTY() があるようですが、使えそうでしょうか: https://nodejs.org/api/tty.html
@mnoriaki さま、ありがとうございます😊 async/awaitを使った場合の問題だったようで、f6c03286f9c6e35c5beb44eb8c1d42715663a915 の修正で解決しました✨
cnako3でnadesiko3-serverを起動した時、ctrl+cでプロセスが止まらない 確かに再現する https://nadesi.com/cgi/kaizen3/?m=thread&threadid=86