問題タブ [gets]
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()vs get()vs fgets()
私は文字列(数字が入力されていると仮定)を整数に変換するかなり簡単なプログラムを実行してきました。
終わった後、私は答えることができないいくつかの非常に独特な「バグ」に気づきました。これは主にscanf()、gets()とfgets()関数がどのように機能するかについての知識が限られているためです。(私はたくさんの文学を読みましたが。)
したがって、あまり多くのテキストを書かずに、プログラムのコードを次に示します。
これが私が抱えている問題です。まず、gets()関数を使用する場合、プログラムは完全に機能します。
次に、を使用する場合、関数が最後に改行(ASCII値10)文字を読み取りfgets()、結果を台無しにするため、結果はわずかに間違っています。fgets()
第三に、scanf()関数を使用する場合、最初の文字は明らかに-52 ASCII値を持っているため、結果は完全に間違っています。これについては、説明がありません。
これは使用が推奨されていないことがわかったので、ここで改行文字を読み取らない(または無視しない)ようにgets()使用できるかどうかを知りたいと思います。fgets()また、scanf()このプログラムの機能はどうなっていますか?
c - get()は、実際に入力を行わずに入力を取得しますか?
私はCにかなり慣れていないので、これがばかげた質問である場合は申し訳ありませんが、次のコードを実行すると次のようになります。
そして、任意の10桁を入力すると、コマンドウィンドウに文字列を入力しなくても、「文字列が入力されました」という行が出力されます。誰かが理由を説明できますか?それを止める方法はありますか?
ありがとう!
c++ - gets の安全な代替手段
2 つの単語の間の空白を含めて、標準入力から行全体を読みたいです。
gets on gcc を使用すると、次のメッセージが表示されます。
より良い代替手段は何ですか?
ruby - Rubyの印刷機能
ruby初心者です。ユーザーに名前を尋ねてそれを出力する次のコードがあります。
名前として John Doe と入力すると、出力は次のようになります。
printとは異なりputs、出力の後に自動的に新しい行を配置することはありませんが、上記の場合、後に入力したものはすべて新しい行に出力されることに気付きました#{name}。これはなぜですか?
c - リンクされたリストを使用して C で入力を読み取る
リンクリストを作成しました。その要素は、前のアイテムと次のアイテムの両方のアドレスを保持します。入力ファイルからコマンドを取得します。コマンドを検出し、次のステートメントをパラメーターとして使用します。(テキスト: add_to_front john-> 意味: add_to_front(john))
コード: http://pastebin.com/KcAm1y3L
入力ファイルからコマンドを実行しようとすると、同じ出力が何度も返されます。ただし、入力をmain()手動で書き込むと機能します。
元の入力ファイルの場合:
(残念ながら)出力は次のとおりです。
といっても、書いてみると
このコマンド チェックの代わりに:
そのmain()中で正しい出力が得られます。
質問することがたくさんあることは知っていますが、このことは2日間私を悩ませています. 私が間違っていると思いますか?
c - get()関数と入力の'\0'ゼロバイト
ファイルからゼロバイト()を読み取る場合、C言語(たとえばglibc)のgets() 関数は停止'\0'しますか?
クイックテスト:echo -ne 'AB\0CDE'
ありがとう。
PSこの質問は、この質問のコメントから生じます:libcに戻る-問題
PPSgets関数は危険ですが、それはこの関数自体に関する質問であり、誰かがそれを使用するべきかどうかについてではありません。
ruby - ruby の "gets" に関する質問
別の入力にアクセスしようとすると、2番目の入力が無視されるのはなぜだろうと思っていました。
ご覧のとおり、while ステートメントは完全に無視されました。
これは出力例です。
c - Cのユーザーから取得した文字列がスクランブルされています
ユーザーから文字列のリストを取得するために、次のCコードを記述しました。しかし、保存された文字列は奇妙な値を出している。
入力サンプル:
エントリ数を入力してください:3
別の文字列を入力してください:Alladin
別の文字列を入力してください:Barack Obama
別の文字列を入力してください:文字列が正しく読み込まれています...
すべての文字列を表示しています:
AllaBaraObama
BaraObama
Obama
問題:1)1つの文字列が入力としてまったく取り込まれないのはなぜですか?
2)表示された文字列がそのようにスクランブルされているのはなぜですか?
scanf()の代わりにgets()またはfgets()を使用しても、問題は同じです。
c - C の gets() の問題
次のコードを書きました。
問題は、gcc が「int const count」のエラーを表示することです:「読み取り専用変数 'count' のインクリメント」。
何が間違っているようですか?
ありがとう!