問題タブ [putchar]
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 - getchar() および putchar() 関数の背後にある理論
私は K&R による「The C Programming Language」に取り組んでいますが、example 1.5 は私を困惑させました:
「getchar()」は「putchar()」を表示するための文字を取ることを理解しています。しかし、ターミナルでプログラムを実行すると、'putchar()' に文字列全体を渡して表示できるのはなぜですか?
c - getchar と putchar で複数行を出力する
C プログラミング言語を学習し、Microsoft Visual C++ を使用してコードを記述およびテストする初心者です。
以下のテキストからの C のプログラム (セクション 1.5.1) は、入力を putchar() と getchar() を介して出力にコピーします。
プログラムは、Enter キーを押すたびにキーボードで入力された文字を印刷します。その結果、印刷前に 1 行しか入力できません。印刷する前にキーボードで複数行のテキストを入力する方法が見つかりません。
このプログラムにキーボードから複数行のテキストを入力および出力させる方法と方法はありますか?
これが基本的で無知な質問である場合は申し訳ありません。
どうぞよろしくお願いいたします。
c - Cの3桁のジェネレーター
次のようなすべての可能な3桁の組み合わせを生成しようとしています:012, 013 ,014...
BUT:繰り返し文字(999 や 022 など)を無視したいし、数字を再利用したくない(123 が既にある場合は、321 を表示しない)ため、最後の値は789 にする必要があります。
ここに私のコード:
結果を次のように並べたい:
また、printf / putchar以外の関数を使用することは想定されていません。
c - putchar(c) の '_' の値は?
ループ外の putchar(c) の値は?
プログラムを実行したら、「th」(wtq) と言って cmd (Windows) で Enter キーを押します。
の前のスペースに注意してくださいprintf c_outloop 0
。putchar(c)
スペースの価値は?
c - Windows コンソールに表示される EOF 文字がおかしい
最近、EOF キャラクター コンソール ウィンドウの興味深い解釈に直面しました。Windows 7 コードputchar (255)
&&を実行している一部のマシンputchar (-1)
では、スペース文字として表示され、一部のマシンでは文字として表示され'a'
ます。2番目は私を混乱させます。教えてください、なぜこれが起こっているのですか?
c - C の Putchar と Getchar
K&R の The C Programming Language を読んでいて、putchar と getchar について混乱しています。10文字を入力すると、プログラムがそれらを画面に出力するプログラムを作成しました。
次のような出力が得られると予想していました。
...など10回ですが、これは私が得た出力です:(2文字を入力した後に停止しました)
入力文字が固定文字列と組み合わされて出力される理由がわかりません。
また、文字を格納するために int が使用される理由もよくわかりません。
c - getchar() と putchar() に関する 2 つの質問があります。
私の最初の質問は、getchar()を使用するたびにメモリ内のどこかにバッファを作成し、Enterキーを押すとgetchar()がバッファからコンテンツの読み取りを開始し、getchar()が一度に 1 文字だけを読み取ることです。したがって、この上記のプログラムでは、最初のgetchar()が実行されると、メモリにバッファが作成され、行全体のコンテンツがバッファに格納されます。Enter キーを押したときに「vik」と入力すると、getchar()がバッファからコンテンツの読み取りを開始し、次に「v」と入力します。 getchar()は一度に 1 文字しか読み取らないため、変数 c に代入すると、'v' のみがバッファーからフラッシュされます。次に、次のステートメントでputchar(c)が画面に 'v' を出力します。だから今「イク」getchar()ステートメントを実行すると、ユーザーに何かを書き込むように再度要求されることはありません。これは、バッファーが完全にフラッシュされない限り、バッファーからコンテンツを読み取るのではなく、ユーザーに何かを書き込むように再度要求されないためです。したがって、ここで「ik」はバターに残っているため、2番目のgetchar()ステートメントでバッファから「i」を読み取り、再び「i」がバッファからフラッシュされ、putchar(c)が「i」を出力します。3 番目のgetchar()を実行すると、バッファに「k」が残され、バッファから「k」が読み取られ、c に代入され、「k」もバッファからフラッシュされます。この時点で、バッファは完全にフラッシュされ、バッファにはコンテンツがありません。 4 番目の getchar() の場合コンテンツがバッファにないため、ユーザーに何かを書き込むように要求を実行します。「as」と書き、ヒットが入るとします。 ここで私の主な質問は、2 つのコンテンツ「as」を指定すると、2 つの getchar() と putchar(c) が実行されるため、「a」だけが画面に出力されるのはなぜ「s」も出力されないのかということです。
そして、私の 2 番目の質問は、getchar()を使用するとメモリ内にバッファが作成されるため、fflush(stdin)を使用するとバッファをフラッシュする必要があるということです。したがって、上記のプログラムでこれに従って、最初のputchar(c)の後にfflush(stdin)を書き込むと、バッファをフラッシュする代わりに実行され、上記のプログラムと同じ出力が出力されるのはなぜですか?
c - このプログラムで文字型変数が複数のバイトを保持するにはどうすればよいですか?
gccで Ubuntu 12.04 LTS を使用しています。この文字型変数が複数のバイトを保持するにはどうすればよいですか? 注 : このプログラムは、入力したすべての文字 (複数) をエコーします。たとえば、「thilip」と入力すると、「thilip」とエコーされます。各文字は 8 ビット (1 バイト) を保持するため、6 文字 (6 バイト) を入力しました。では、getchar 関数はこの値を 1 バイトしか保持できない文字型変数に代入するにはどうすればよいでしょうか。