問題タブ [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.
ruby - gets() で Ruby の壊れた TCP ソケットから回復する
次のような TCP ソケットで入力行を読み込んでいます。
getline() の実行中にエンドポイントが接続を終了すると、gets() がハングします。
どうすればこれを回避できますか? ノンブロッキングまたは時限 I/O を行う必要がありますか?
c - 警告を無効にします: GCC ではヘッダー ファイルを介した「gets」関数は危険ですか?
gets()
Cコードで関数を使用しています。コードは正常に動作していますが、警告メッセージが表示されます
この警告メッセージが表示されないようにしたい。何か方法はありますか?
いくつかの警告を無効にするためのヘッダー ファイルを作成することで、そのような可能性があるのではないかと考えています。または、コンパイル中に私の目的に役立つオプションはありますか? またはgets()
、この警告がポップアップしないようにする特定の使用方法があるのでしょうか?
c - gets() が機能しない
C で書かれたプログラムがあり、ユーザーがオプション 3 を選択すると、スイッチから gets() が呼び出されます。これが私のコードです。ユーザーが何かを入力するのを待っているようには見えません。むしろ、プログラムはスイッチで続行します。
c - gets 関数が非常に危険なため、使用すべきではないのはなぜですか?
GCC で関数を使用する C コードをコンパイルしようとすると、次のgets()
警告が表示されます。
(.text+0x34): 警告: `gets' 関数は危険なので使用しないでください。
これはスタック保護とセキュリティに関係していることを覚えていますが、正確な理由はわかりません。
この警告を削除するにはどうすればよいですか?また、使用に関する警告が表示されるのはなぜgets()
ですか?
そんなに危険ならgets()
、なぜ私たちはそれを取り除けないのですか?
c - gets() 関数の CR 文字
ユーザーは、タブ、スペース、および「Enter」(CR) で区切られている可能性がある文字列を入力します。私はそれをすべて受け取る必要があります。問題は、ユーザーが「Enter」キーを押したときに gets() 関数がスキャンを停止することです。それを行う別の方法はありますか?scanf と gets 以外の関数は使用できません。
ruby - 引数が Ruby スクリプトに渡されると、gets がエラーをスローするのはなぜですか?
gets
ユーザーがエンターキーを押すまで、スクリプトの出力を一時停止するために使用しています。スクリプトに引数を渡さなければ、問題なく動作します。ただし、スクリプトに引数を渡すと、次のエラーで死ぬ:
エラー メッセージは、スクリプトに渡した引数を示しています。なぜARGVを見ているのですか?
コマンドライン引数を解析するために OptionParser を使用しています。parse!
代わりに使用するとparse
(引数リストから解析するものを削除するため)、アプリケーションは正常に動作します。
したがって、何らかの理由で gets が ARGV から読み取っているようです。なんで?これは期待されていますか?それを行わないようにする方法はありますか(実行gets()
しても役に立ちませんでした)。
c++ - セットをどのように使用し、C ++で取得しますか?
私はそれらをJavaで使用していて、それほど多くの問題はないようですが、C++ではあまりよく理解していません。割り当ては次のとおりです。
これまでのところ、これは私が持っているものですが、私は完全に間違っていると合理的に確信しています。誰かアドバイスがあれば本当にありがたいです、ありがとう!
PS:メインは0を返します。純粋に「取得して設定」すること全体を理解しようとするプレースホルダーとして。
c - 取得する前にC.Scanfに入力します。問題
私はCにかなり慣れていないので、プログラムへのデータ入力に問題があります。
私のコード:
IDを入力できますが、残りの入力はスキップされます。このように順序を変更した場合:
それが動作します。ただし、順序を変更することはできず、そのまま必要です。誰かが私を助けることができますか?多分私は他のいくつかの機能を使う必要があります。ありがとう!
c++ - 取得 (変数)
gets(abc) が char[] では機能するのに int では機能しない理由を誰か教えてもらえますか?
c - get()について不平を言う場合は、scanf( "%s"、...)で同じことをしてみませんか?
差出人man gets
:
get()は絶対に使用しないでください。事前にデータを知らずにgets()が読み取る文字数を知ることは不可能であり、gets()はバッファの終わりを超えて文字を格納し続けるため、使用するのは非常に危険です。これは、コンピュータのセキュリティを破るために使用されてきました。代わりにfgets()を使用してください。
ほとんどすべての場所で、同じ問題(バッファオーバーフロー/バッファオーバーラン)が発生scanf
するはずの方法で使用されていることがわかります。この場合、この問題は存在しますか?マニュアルページにそれについての参照がないのはなぜですか?これをコンパイルするときにgccが警告しないのはなぜですか?scanf("%s",string)
scanf
-Wall
ps:フォーマット文字列で文字列の最大長をscanf
:で指定する方法があることを私は知っています。
編集:私は前のコードが正しいかどうかを判断するように求めていません。私の質問は、もしscanf("%s",string)
常に間違っているのなら、なぜ警告がなく、マニュアルページにそれについて何もないのですか?