問題タブ [input-buffer]
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.
c - C で scanf() を使用して 2 文字を連続して読み取る
ユーザーt
数から2文字入力しようとしています。これが私のコードです:
奇妙なことに、最初の出力は次のとおりです。
つまり、コードは の値を待ちませんa
。
c++ - C ++、cinは入力バッファからどのように読み取りますか?
C++ を使い始めたばかりの CS 学生で、cin と getline() がデータを読み込む方法を理解するのに苦労しています。
私の理解では、cin >> は入力バッファでデータを検索し、何も見つからない場合はユーザーにプロンプトを表示します。次に、"John" を読み取り、バッファに改行 \n を残します。
その後 getline() が呼び出されると、\n が表示され、何も返されませんよね?
次に cin が呼び出された場合、期待どおりに動作しますが、なぜ cin は行がバッファーに戻って終了するのを認識しないのですか?
c++ - 配列に入力された「範囲外」の文字が多すぎる場合、メッセージを提示し、配列に再入力するように求める
私はそれを理解することはできません。まず、文字列ライブラリの使用は許可されていません。しかし、ユーザーにメジャーを char 配列に入力してもらいたいのですが、入力が多すぎる (入力バッファーに実行される) と、メッセージが表示され、メジャーを同じ配列に再入力するように求められます。どういうわけかアレイを消去してから再入力する必要がありますか? または、入力バッファを cin.peek() != '\n' でチェックしますか? どうすればいいのかわからない...
私はさまざまなことを試してきましたが、新しい解決策のために以下のコードに戻って行き詰まっています.
c++ - 入力バッファリングがなく、stdin をフラッシュすると、1 つの入力文字がクリアされることがあります (c++、windows)
問題は Windows のみに関連しています。Visual Studio 2012 コンパイラ (vc11) を使用しています。
入力ファイル(標準入力としてリダイレクトされる)から数行(1文字ずつ)を読みたいと思います。しかし、各行を読んだ後、標準入力をフラッシュしたいと思います。
詳細に説明しましょう: setvbuf 関数で標準入力のバッファリングをオフにします (この標準入力がないとバッファリングされ、最初のフラッシュで入力全体がクリアされます)。次に、プログラムは入力ファイルから数行を読み取ります。1文字ずつ読み込みます(fgetc関数)。各行の後、標準入力を fflush でクリアします。Windows では、入力ストリームの fflush が定義されています。MSDN によると、「ストリームが入力用に開かれている場合、fflush はバッファの内容をクリアします。」https://msdn.microsoft.com/en-us/library/aa272686(v=vs.60).aspx
しかし、私はそれがどのように機能するのか理解していません。(行の) 最初の文字が入力から読み取られないことがあります。おそらく fflush が原因です (おそらく fflush は stdin バッファからこの最初の文字をクリアしますか?)。しかし、それは数行でしか発生しません (一部の行は最初の文字で読み取られます)。
この最初の文字が (ときどき) 消えてしまうのはなぜですか?
どうすればこれを修正できますか? (各行を読んだ後に fflush(stdin) を呼び出したいと仮定します)。
プログラム:
入力ファイル:
実行コマンド:
出力 (数行で最初の文字が欠落していることに注意してください):
c - Cプログラミング、誰でもこれを説明できますか?
この場合、
hi how are you\doing
出力が得られます
hi\thow\tare\tyou\\doing
このプログラムを入力で実行すると
(大きなスペースはタブです)
私はこの出力を得る
コード:
これを実行すると、何も得られません。出力なし。シェルプロンプトに戻ります。
より正確には、最初のプログラムでは必要な出力が得られますが、2 番目のプログラムではバックスラッシュが毎回取得されます\t
が、その後ではなく、どのようになったかを見て出力になる\
と予想されます, is '\b' が原因です? もしそうなら、それはどのように機能しますか?しかし、もしそうなら、なぜ3番目のプログラムで同じことが起こらないのですか?\\\
\t
\t\
rasbian のデフォルト gcc コンパイラと Windows 用の mingw msys-gcc パッケージでこれを実行しました。
android - AudioTrack が機能しない、音が出ない
Audiotrack が動作しない理由を確認できますか。Audiotrack に出入りするバッファがあります。動作できるはずです。
c - 空白のような修飾子は scanf で何をしますか?
1. 2 つの書式指定子の間にある空白は、コンピュータに何をするように指示しますか? 2. %c 以外の %d のようなフォーマット指定子は、そこから読み取る前に入力バッファを消去しますか?
c# - C#で、シリアルポートの入力バッファに情報があることを知る方法は?
RS-232 と接続された 2 台のコンピューターを使用して非同期接続がどのように機能するかを示すために、大学のコースの 1 つで使用される C# でプログラムを作成しています。私のコースはプログラミングではなく、データ ネットワークに関するものなので、接続性は私が探しているものです。
図 1 - Visual Studio 2015 を使用した GUI のサンプル レイアウト
私のプログラムに実装したい機能の 1 つは、マスター/スレーブのシンプレックス接続がどのように機能するかを示すことです (つまり、プログラムは、キーボードから入力を送信するマスターか、情報を受信して印刷するだけのスレーブかを選択できます)。テキストボックス)。
私がすでに持っているのは、シリアル ポートを特定の特性 (ボー レート、データ ビット、ストップ ビットなど) で初期化する機能です。この機能は GUI からコンボ ボックスを使用して選択され、ユーザーがボタンをクリックして「ポートを開く」ときにポートに割り当てられます。
私が知らないのは、プログラムの「スレーブ」部分を作成する方法です。私ができることの私の考えは、プログラムを「スレーブ」にすることを選択した後、ポートを開き、入力バッファーにデータが保存されているときに何らかのフラグまたはイベントがトリガーされるのを待つことです。
いくつかのフォーラムを読んでいますが、必要なものに似たものは見つかりません。ただし、必要なものに近づけると信じていた複数の代替案をテストしましたが、結果はほとんどまたはまったくありませんでした. 私は、自分が間違っている可能性のあるアイデアや、この問題に取り組む方法についての提案を求めに来ます。問題のある行は太字(または 2 つ星 ( * ) )で示されています。
私は経験豊富なプログラマーではありません。学生に役立つものを作成したいだけです。建設的な批判は高く評価されます。