問題タブ [getchar]

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.

0 投票する
1 に答える
578 参照

c++ - getchar() と -O3 を使用した場合の奇妙な動作

私はこれらの2つの機能を持っています

次に、関数を次のように変更します。

どちらの関数も外部コードによって呼び出されます。両方のプログラムのコードは同じですが、getchar() を変更するだけで、2 つの異なる出力が得られます。これは可能ですか、それとも私のコードに何か問題がありますか?

ありがとう

これは私がGDBで得た出力です**

最初のコードの場合

2 番目のコードの場合

0 投票する
10 に答える
41279 参照

c - getchar() が scanf() の後で Enter キーを押すのを待たないのはなぜですか?

私は C を学んでいて、"getchar()" を使用してコマンド ウィンドウを停止しているので、演習が行われていることがわかりますが、うまくいきません。サンプルは次のとおりです。

これは出力です:

  1. オプション1。
  2. オプション 2。
  3. オプション 3。
  4. 出口。

オプションを付ける: 1

あなたはオプション1を選択しました。

プロセスが 0 (0x0) を返した実行時間: 3.453 秒

何かキーを押すと続行します。

「getchar()」の入力を待たないのはなぜですか?

0 投票する
7 に答える
25785 参照

c - CでのEOFを使用したProbIem

改行やその他のさまざまな文字を含むことができる2つの文字列を読み取ることになっているプログラムを書いています。したがって、EOF(Ctrl-ZまたはCtrl-D)を使用して文字列を終了しています。

これは最初の変数では問題なく機能しますが、2番目の変数では、明らかに何かが入力バッファーにスタックしていて、ユーザーが何も入力できないため、これは問題があるようです。

while (getchar() != '\n');いくつかの同様のバリエーションでバッファをクリーンアップしようとしましたが、何も役に立たないようです。すべてのクリーニングの試行は無限ループになり、クリーニングなしでは、2番目の変数を追加することは不可能です。

両方の変数の文字は、次のようなループで読み取られます。while((c = getchar()) != EOF)これは、バッファーに残っているのがEOFであることを示しています。それとも、他の方法でプログラムの動作に影響を与えますか?私が使用しているロジックに何か問題がありますか?

これに何時間も苦労した後、私は少し必死になり始めています。

コード:

0 投票する
13 に答える
138172 参照

c - 単一の文字のみを読み取るためにgetchar()でEnterキーを押さないようにするにはどうすればよいですか?

次のコードでは:

Enter入力したすべての文字を印刷するにはを押すgetchar必要がありますが、これはやりたくないので、文字を押して、を押さなくてもすぐに紹介した文字を繰り返し表示しEnterます。たとえば、文字「a」を押すと、その横に別の「a」が表示されます。

しかし、「a」を押しても何も起こらず、他の文字を書くことができ、Enter:を押したときにのみコピーが表示されます。

これどうやってするの?

cc -o example example.cコンパイルにはUbuntuでコマンドを使用しています。

0 投票する
3 に答える
1967 参照

c - getcharを使用してプログラムを実行するにはどうすればよいですか?

私はK&RからCを自分自身に教えようとしている合計Cn00bです。私の質問はちょっと恥ずかしいほど初歩的なものです。OK、ここに行きます:私はgetcharを使って私が期待した種類の出力を与えるプログラムを得ることができません。K&Rが手元にある場合、私は演習1.13で立ち往生しています。質問は、「入力された単語の長さのヒストグラムを印刷するプログラムを作成する」というもので、この問題のために、水平バージョンにさえ取り組むことができません。

XPでDev-C++(mingWコンパイラ)を使用していて、コマンドラインからプログラムを実行しています。私の問題は、プログラムを実行しようとすると、スキャンする文字を入力するのを待つのですが、入力が完了してEnterキーを押すと、何も実行されませ。期待どおりにヒストグラムを出力することを期待しています。実際には、単語の長さをカウントしているようには見えません。コードでわかるように、ctr配列にあるものを出力して、何かが含まれているかどうかを確認しようとすると、何も出力されないためです。

私はn00bなので、コードに問題があるのか​​、コマンドラインに問題があるのか​​わかりません。しかし、モデルプログラムをコンパイルして実行しようとすると、同じことが起こるため、システムに問題があるのではないかと思います。入力を入力し、Enterキーを押すと、何も起こりません。Ctrl-Cを押すと、モデルの出力とはまったく異なるアスタリスクが1つか2つ表示されることがあります。それ以外の場合は、何もしません(プロンプトに戻るだけです)。

これが演習のコードです。私はこれに丸一日を費やし、プログラミングを続ける私の能力に疑問を投げかけています。誰かが私をこの穴から抜け出すことができれば、本当に本当に感謝しています!

また、前述のモデルプログラムについて別の質問がありますが、それ自体の質問に投稿する必要があると思います。皆さんありがとう :)

0 投票する
4 に答える
5130 参照

c - C - ループ内の getchar()?

ループで getchar() を使用するにはどうすればよいですか? 今私が持っています...

でもうまくいかない… n_players が 3 だと最後にだけ getchar を 2 回実行する…

getchar は最初のループをジャンプします

0 投票する
4 に答える
4650 参照

c - getchar()およびputchar()

例では:

よくわかりません。putchar()は文字を出力しますが、EOFの後にすべての文字を出力するのはなぜですか。また、これらすべての文字をどこに記憶しているのでしょうか。ありがとう。

0 投票する
2 に答える
1709 参照

c - getchar()およびC言語での文と単語のカウント

特定のルールに従って、特定のテキストファイル内の単語、音節、および文の数を計算するプログラムを作成しています。

文は、で終わる空白で区切られた単語のコレクションです。また !また ?ただし、これも文です。

私がこのプログラムにアプローチした方法は、getchar()を使用して一度に1文字ずつテキストファイルをスキャンすることです。メモリ内のテキストファイル全体を操作することは禁止されています。一度に1文字または単語にする必要があります。

これが私のジレンマです。getchar()を使用すると、現在の文字が何であるかを知ることができます。EOF文字が見つかるまで、ループでgetchar()を使い続けます。ただし、文の最後に複数のピリオドがある場合でも、それは1つの文です。つまり、分析している文字の前と後の最後の文字が何であるかを知る必要があります。私の考えでは、これは別のgetchar()呼び出しを意味しますが、次の文字をスキャンするときに問題が発生します(文字がスキップされるようになりました)。

上記の文が実際に文であると私がどのように判断できるかについて誰かが提案を持っていますか?

ありがとう、そしてあなたが説明または何か他のものを必要とするならば、私に知らせてください。

0 投票する
1 に答える
1344 参照

c - I/O に scanf() と printf() を使用する代わりに、getchar() putchar() を使用するようにコードを変換するにはどうすればよいですか?

I/O には getchar()、putchar() を使用する必要があります。私のプログラムは問題なく動作しますが、組み込みシステム用の CodeWarrior のようには使用できません。また、malloc() を取り除き、ポップ/プッシュにスタックを使用する必要もあります。strtolscanf を使用しなくなった場合、引き続き使用できますか?

これは、intモードでこれまでに持っているものです:

0 投票する
6 に答える
11301 参照

c - getchar() 関数について混乱しています

getchar()次のコードでの の役割について混乱しています。つまり、キーを押したときにのみ閉じられる出力ウィンドウを確認するのに役立ちEnterます。

基本的には、 Entergetchar()キーを押してから 1 文字を読み取るのを待っています。

この関数が読み取っている単一の文字は何ですか? 読み取るためにキーボードからキーを押しませんでした。

何も読み取っていないのに、「ねえ、あなたは私が読むために何も入力していません」というエラーが表示されないのはなぜですか?