問題タブ [stdin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - コマンドラインで渡されたファイルのすべての行を反復するにはどうすればよいですか?
私は通常Perlでこれを行います:
なんでも.pl
それからcat foo.txt | whatever.pl
今、私はPythonでこれをやりたいです。試してみsys.stdin
ましたが、Perl で行ったように行う方法がわかりません。入力を読み取るにはどうすればよいですか?
c - fgets よりも速く入力行を読み取りますか?
私は、パフォーマンスが非常に重要であるが重要ではないプログラムを書いています。現在、私は行ごとにテキストを読み込んでおり、各行を取得するためFILE*
に使用しています。fgets
いくつかのパフォーマンス ツールを使用した後、アプリケーションが実行されている時間の 20% から 30% が内部にあることがわかりましたfgets
。
テキスト行を取得するより高速な方法はありますか? 私のアプリケーションはシングルスレッドで、複数のスレッドを使用するつもりはありません。入力は標準入力またはファイルからの可能性があります。前もって感謝します。
unix - read コマンドを使用しても期待どおりに動作しなかったのはなぜですか?
私は、vezult [1] によって提案されたコマンドで遊んでいたときに、自分のコンピューターに大混乱をもたらしました。ワンライナーがファイル名の削除を要求することを期待していました。ただし、フォルダー内のファイルをすぐに削除しました。
stdin:s [2]の入力を待つことを期待していました。その行動が理解できません。read コマンドはどのように機能し、どこで使用しますか?
python - Perl の while (<>) {...} に相当する Python は?
ファイルを行単位で処理する小さなスクリプトをたくさん書いています。Perlでは、私は使用します
入力がどこから来るか (ファイルまたは標準入力) を気にしないので、これは便利です。
Pythonではこれを使用します
これはあまりエレガントに見えません。ファイル/標準入力入力を簡単に処理する Python イディオムはありますか?
python - Python cgi と stdin
pycurl を使用して put 経由でファイルをアップロードし、python cgi スクリプトを使用してサーバー側でファイルを受信しています。基本的に、サーバー側のコードは次のとおりです。
これはテキストでは機能するようですが、バイナリ ファイルでは機能しないようです (私は Windows を使用しています)。バイナリ ファイルでは、約 10kb から 100kb を受信した後、stdin.read を実行するループが壊れます。何か案は?
c - 入力バッファを覗いて、C の余分な文字をフラッシュする
C で 1 文字の入力を受け取りたい場合、余分な文字が送信されたかどうかを確認するにはどうすればよいですか。
getc(stdin) のように機能するが、ユーザーに文字の入力を求めない関数はありますwhile(getc(stdin)!=EOF);
か? または、バッファ内の次の文字を覗く関数で、NULL (またはそこにあるもの) を返さない場合は、stdin をフラッシュする (別の) 関数を呼び出すことができますか?
編集
だから今、scanfはそのトリックをやっているようですが、改行まで文字列全体を読み取る方法はありますか? 最も近い空白ではなく?「%s %s %s」などをフォーマット文字列に入れることができることはわかっていますが、任意の数のスペースを処理できますか?
c++ - Windows で、リダイレクトされたパイプであるノンブロッキング stdin を使用するにはどうすればよいですか?
stdin
次のような、リダイレクトされたパイプを介してデータを取得する Windows C プログラムがあります。
stdin
問題は、ブロックしない方法で読み取ることができる必要があることです。この理由は、(1) 入力がデータ ストリームであり、データ ストリームがないこと、(2) プログラムが読み取りスレッドをいつでも EOF
中止できる必要があることです。データがない場合はブロックされるため、非常に困難になります。stdin
fread
fcntl
Unix では、ファイル記述子のブロック モードをおよびで設定できるため、これは問題ありませんO_NONBLOCK
。ただし、fcntl
Windows には存在しません。
私は使用してみましたSetNamedPipeHandleState
:
ERROR_ACCESS_DENIED
しかし、これは( )で失敗します0x5
。
他に何をすべきかわかりません。これは実際には不可能ですか (!)、それとも高度に難読化されているだけですか? ネット上のリソースは、この特定の問題についてはかなりまばらです。
c - 標準入力から読み取るCで矢印キーを無視するには?
read() システム コールを使用して標準入力から読み込んでいますが、ちょっと気になる点があります。矢印キーを使用できません...私が本当にやりたかったのは、矢印キーを使用して入力したテキスト内を前後に移動することでしたが、それはそれほど簡単ではないと思います...だから、少なくともやりたいこと、それらを無視することです。
現在、矢印キーのいずれかを押すと奇妙な出力が生成され、標準出力に何も書き込まれないようにしたい (その結果、read() システム コールで標準入力から読み取られる)。
これは簡単に達成できますか、それともそれほど簡単ではありませんか?
c# - stdin および stdout を介した C# 双方向 IPC
2 つの C# プロセスを接続して、stdin と stdout を介して相互に通信できるようにするにはどうすればよいですか?
このような:
プロセス A --> 標準出力 A --> 標準入力 B ---> プロセス B
プロセス A <-- 標準入力 A <-- 標準出力 B <--- プロセス B
c++ - swig、C++、および Ruby を使用した std::istream との $stdin の互換性
入力として std::istream を受け取る C++ の関数があります。
SWIG を使用して Ruby にバインドしましたが、Ruby の $stdin 変数は C++ のストリーム クラスなどとは根本的に異なるため、次のいずれかの方法がわかりません。1) C++ クラスを Ruby に公開する方法$stdin を使用できます。または 2) $stdin を C++ クラスが理解できるものに変換します。
C++ の iostream を Ruby にバインドした経験のある人はいますか?
ありがとう。