ホームページ  >  記事  >  バックエンド開発  >  出力中に入力を取得するにはどうすればよいですか?

出力中に入力を取得するにはどうすればよいですか?

WBOY
WBOY転載
2024-02-09 12:30:19631ブラウズ

出力中に入力を取得するにはどうすればよいですか?

php エディタ Apple は今日、よくある質問を紹介します。PHP では、ユーザー入力を取得する必要がある場合、それをどのように出力すればよいですか?ユーザー入力の取得は対話型プログラムの作成において重要な部分であるため、正しい方法を習得することが重要です。 PHP では、「fgets()」関数を使用して標準入力からユーザー入力の行を読み取る、または「fgetc()」関数を使用して標準入力から読み取るなど、いくつかの組み込み関数を使用してユーザー入力を取得できます。標準入力 文字を取得します。もちろん、`$_GET` または `$_POST` スーパーグローバル変数を使用して、ユーザーがフォームを通じて送信したデータを取得することもできます。どの方法を使用する場合でも、プログラムのセキュリティと安定性を確保するために、ユーザー入力の必要な検証とフィルタリングに注意を払う必要があります。上記の紹介が皆さんのお役に立てれば幸いです。

質問内容

私が実現したいのは、大量の情報 (たとえば、0 から 1000000000000 までの数値) をコンソールに記録し、渡すことができるある種のアプリケーションです。コンソールで実行を停止するコマンド (「stop」など) を入力します。

ゴルーチンを使おうと思いついたのですが、入力欄が出力に変わってしまってコマンドを入力できません。

これは私のコードです:

リーリー

そして得られた結果。文字は入力しようとしている入力であり、数字はアプリケーションからの出力です

Go アプリケーションで適切な入出力を行う方法について何か提案はありますか?

回避策

入力フィールドが出力に変更されているため、コマンドを入力できません

コマンドは通常通り入力できます。入力すると、コンソールにエコー表示されます。これはコンソールに出力される他のすべての出力と組み合わされるため、ユーザーは混乱する可能性がありますが、コンピュータは混乱しません。

これが実際にオペレーティング システムと一致すると仮定すると、プログラムは問題なく動作します。

リーリー

私のオペレーティング システム \r では利用できません。より移植性の高い方法は、strings.trimspace を使用してすべてのスペースを削除することです。

リーリー

この変更により、コードは機能するようになりました。おっしゃるとおり、出力と入力は画面に挿入されますが、「stop」と入力してプログラムを終了することもできます。

Go アプリケーションで適切な入出力を行う方法について何か提案はありますか?

現実世界では対話型の端末プログラムはほとんどありません。代わりに、コマンド ライン引数と環境変数が呼び出されたときにその構成を提供します。シェル リダイレクトは通常、プログラムからの長い出力を (ファイル内に) 保存したり、ページング (例: |less) する​​ために使用されます。

プログラムがユーザーにプロンプ​​トを表示し、データを収集する対話型端末モデルを使用した学術プログラミングが多く見られますが、現実の世界ではこれは非常にまれで、多くの場合、賢明ではない複雑化になります。標準入力は通常、ユーザー コマンド (操作またはフィルター対象のデータなど) ではなく、計算に必要なデータ入力を提供するために使用されます。

@tinkerer が示唆したように、シグナルはプログラムを終了するためにすでに使用できます (詳細はオペレーティングシステムによって異なります)。したがって、プログラムを終了するためだけに補間される標準入力と出力の視覚的表現をターミナル アプリケーションがどのように処理するかについて心配する必要はありません。 posix 環境には他にも多くのシグナルがあり、その一部は完全にユーザー向けであり、あらゆる目的に使用できます。

ランタイムがより複雑なユーザー入力を必要とする場合、プログラムは通常、ソケット上でコマンドを待機します。このようなプログラムでは、シンプルさとアクセシビリティにより、http サービスを提供する Web インターフェイスがますます一般的になってきています。

以上が出力中に入力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。