問題タブ [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() != EOF
C プログラミング言語の本から次のプログラムを実行しています。
または
このプログラムを実行すると、説明のつかない動作が発生します。コマンドラインから次の順序で文字を入力すると{'h', 'e', 'l', 'l', 'o', '\n', '^D'}
、次の応答が画面に出力されます:が入力されたhello
後\n
、プログラムは入力されると終了^D
します。
ただし、シーケンスを次のように変更すると{'h', 'e', 'l', 'l', 'o', '^D'}
、次の応答が画面に出力されます:hello
が、プログラムは終了しません。入ったらやめるべきではありません^D
か?^D
プログラムを終了するには、もう一度入力する必要があります。^D
または、次のように入力した後にのみプログラムが終了します\n
。いつ入力してもプログラムが終了しない理由がわかりません^D
。何かご意見は?
UNIX システムで実行しています。
c - C で putchar と getchar を使用して複数の空白を削除する
getchar()
問題:複数の空白を削除した文字列を使用してテキスト入力を受け取り、出力するプログラムを作成してください。
擬似コードの書き方は次のとおりです。
私はそのようにアルゴリズムを実装しようとしました:
文字列に空白が含まれていると、停止します。どのようにデバッグすればよいかわかりません。問題は 2 番目の にあると思います。while
プログラムは、新しい文字を待つのではなく、そこで無限ループに入ります。
c - C - 入力ストリームから読み取り、タブをスペースとして
私は少し立ち往生しており、誰かが私が間違っていることを見つけるために簡単に見てくれることを望んでいます. タブをタブではなく出力用のスペースとしてカウントしたい。この場合、3 つのスペース = 1 つのタブを使用しています。今はタブをタブとして読んでいるので、最初のwhileステートメントをどのように設定したかに関係している可能性があると思います。
c - C の putchar の文字セット
putchar が使用する文字セットを把握しようとしています。一見、マルチバイト文字を出力できません:
しかし、Windows の端末のコードページが chcp 1252 で 1252 (West European Latin) に設定されている場合、次のコードはユーロ記号を出力できます。
しかし、端末の文字セットが 1252 に設定されていても、putchar('€') はユーロ記号を出力できません。
誰かが私に上記の(一見)矛盾を説明してもらえますか?
どうもありがとうございました。
c - loop_in_C で一度に文字を取得する
私はC言語の本を読んでいましたが、次のコードに固執しました... Cコードを示したように、for()ループを使用して文字を取得しています。また、forループを使用して画面に文字を出力するのと同じ方法です...ユーザーがエンターを押すと、ループが終了し、画面に出力するために使用される他の for() ループが i 変数の値を使用します。しかし、画面上の結果は逆です。どうすればそれを整理できますか?
c - getchar() を使用して数値を格納する
数値、演算子、および 2 番目の数値の入力を取り、演算を実行して出力する C で単純な算術計算機を作成することになっている課題があります。シンプルですね。
私は具体的に数値入力に使用することに制限されていgetchar()
ますputchar()
。これは、入力全体を一度に1文字ずつ読み取らなければならないことを意味します...そして、数字の2文字(およびたとえば)を1つの数字として読み取る方法について混乱してい9
ます。右から左に読むと、これは別の話になります。しかし、残念ながらそうではありません...1
91
getchar()
ポインタをいただければ幸いです!
c - Cのbrainf*ckインタープリター - ブラケットループの処理
私はCでbrainfuckインタープリターを書いています.
ブラケット ( []
) ループが正しく機能していないようです。
編集:このコードは現在機能しています
これは、ブラケット ループを制御するコードです。
プログラムは、bf コードを含む文字列から読み取っています。文字ごとに、switch ステートメントの適切なセクション (各コマンドのケースを含む) が呼び出されます。
']' コマンドが呼び出されると、プログラムはしませんループの先頭に戻ります。
助けてくれてありがとう!
編集:以下に指摘されているいくつかのバグを修正した後、実際の問題であることが明らかになったものを示すために更新しました。Ubuntu 14.04 で gdb デバッガーを使用しています。
編集(再度):プログラムは現在機能しており、以下で利用できます。
編集(再び(再び)):以下のコメントで述べたように、最終的にはさまざまなバグが問題を引き起こしたため、自分の質問に答える単一の答えがありませんでした. 誰かが興味を持っている場合に、ブラケット ループを処理する 1 つの方法の例として、これを残しました。
コード全体は、 https://github.com/underscorejho/bfiの GitHub で表示できます。
c - while ループで fgetc と putchar をマージする
ファイルの内容を標準出力に出力する簡単なコードを書いています。
私がこれを使用するとき:
それは正常に機能しますが、マージしたいと思いputchar
ますfgetc
。だから私は書いた
しかし、うまくいかないようです。だから私は戻り値をチェックしますputchar
では、なぜうまくいかないのでしょうか。