問題タブ [getc]

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 投票する
0 に答える
161 参照

perl - Perl 5.14.2 の SIGINT ハンドラでの Perl の getc の問題

ここに私のテスト環境があります:

コードスニペット:

プログラムを実行した後、「5678」が最初に出力され、入力を待ってから、「eeee」に続いて「ctrl-c」を入力すると、ハンドラーはハンドラーの getc 関数をスキップして「1234」と「4444」を連続して出力します、その後、待機中の入力がハングします(まだ入力を待機しているのはハンドラーの外側の getc だと思います)。「q」と入力すると、「q」が出力されます。

だから私の質問は:

  1. ハンドラーの getc 関数が機能しないのはなぜですか? この問題は、他の perl リリースには存在しないようです。
  2. ハンドラーの getc 関数を機能させるにはどうすれば解決できますか?
0 投票する
4 に答える
94010 参照

c - getc を使用してコンソールから \r (キャリッジ リターン) と \n (改行) を読み取りますか?

基本的にユーザーが「Enter」を押してから何かをするのを待つ関数を書いています。テスト時に機能することがわかったのは次のとおりです。

私が持っている質問と、私が最初に試みたのは実行することでした:if (x == '\r')しかし、テストでは、プログラムは私がエンターを押したことをキャッチしませんでした. は'\n'、コンソールからエンターを押すことに対応しているようです。誰かが違いを説明できますか?また、確認のため、 と書くとif... == "\n"文字列リテラル?つまり、ユーザーは文字通り"\n"コンソールから入力する必要がありますよね?

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

c - 文字を「argv[2]」に置き換えます

ここにいくつかのコードがあります:

最初の質問: ファイル (argv[1]) の argv[2] の一部の文字を argv[3] の他の文字に置き換える必要c = argv[3]があります。 「c」をargv[3]に書いた文字に置き換えますか??

2 番目の質問: argv[2] に 2 つの文字がある場合、最初の文字は置換する文字で、2 番目の文字は置換する文字です。

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

c - Know the row with max characters (C)

I have written a program in C, to find the row with the max number of characters.

Here is the code:

I can easily find the row with the highest number of characters but how can I print that out?

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

c - K&R の getc と putc の実装は正しいですか?

K&R の第 8 章では、putc および getc 関数のカスタム実装があります。getc の最初の定義で、パラメーターが stdin の場合、_iob の定義に従って、関数はアドレス 0 に書き込もうとします。これは、_iob[0].ptr と _iob[0].base があった値だからです。割り当てられます。これは合法ですか?

コード: http://ideone.com/AIkCA

_iob の定義:

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

c - Cでgetc()関数を使用した不明な論理エラー

getc()関数を使用して、あるファイルの内容を別のファイルにコピーしようとしています。しかし、次のプログラムの出力は大量のゴミであるため、不明な論理エラーが発生しています。

nums.csvの内容は次のとおりです。

プログラムは以下を返します:

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

newline - プログラムを終了するためのキーストロークとしてリターン/エンターをキャプチャする

このプログラムはファイルを読み込み、ユーザーに表示する行数を入力するように求めます。行数が表示された後、さらに行を印刷するか、または Return キーを押して終了するかをユーザーに再度求めるプロンプトが表示されます。

改行や改行をキャプチャして終了するのに苦労しています。戻るボタンを押してもプログラムは終了しませんが、ASCII 値を入力すると終了します (10 は改行の 10 進数です)。

Enterキーが押されたときにプログラムを終了させたい。

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

c - fgetc,getc により、テキスト ファイルからの読み取り時にプログラムがクラッシュする

どうしたの?警告がないため、構文が正しいと確信しています。さらに、同じ結果getc(document);を試しても過ぎません。fgetc(document);ここに来ていないのは何ですか?(私printf("$");はそれがクラッシュする場所を見ていました)

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

perl - IO::Unicode文字を取得および取得解除するためのハンドル

UnicodeとIO::Handleで問題が発生したと思います。私が何か間違ったことをしている可能性が非常に高いです。IO :: Handleから個々のUnicode文字(バイトではなく)を取得および取得解除したい。しかし、私は驚くべきエラーを受け取っています。

ungetc()行からのエラーメッセージは、「unicode.plの21行目でUTF-8文字の形式が正しくありません(文字列の予期しない終わり)です。」\x{00c5}「unicode.plの21行目でutf8にマップされません。」しかし、それはキャラクターの正しいヘクスであり、キャラクターにマップする必要があります。

16進エディターを使用して、A-RINGのバイトがUTF-8に対して正しいことを確認しました。

これは、2バイトの文字では問題になるようです。

最後のsayは'\xC5'(文字通り4文字:バックスラッシュ、x、C、5)を出力します。

そして、スカラー変数の代わりにファイルから読み取ることでこれをテストしました。結果は同じです。

これは、darwin-2level用に構築されたperl 5、バージョン16、subversion 2(v5.16.2)です。

そして、スクリプトはUTF-8に保存されます。それが私が最初にチェックしたことでした。

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

c - fgetcは常に値1を返します

次の機能があります。

main()本体で、次のコードを使用して上記の関数を使用しました。

;

myfile.txtに何を入れても、プログラムはそれを出力します。たとえば、abcの場合、111が出力されます。

EOFと適切に比較するには、関数内のcをintとして宣言する必要があることを私は知っています。また、テキストファイルの各文字に設定されたASCIIからのintコードが出力されることを期待していました(aの場合は97、...)。なぜ「1つ」が出力されるのかわかりません...その理由を知っていますか?前もって感謝します。