問題タブ [fgets]
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 - バッファへの割り当て時に fgets でリークする
次のコードがリークする場合とそうでない場合がある理由を理解するのに問題があります。違いは
同じだろうと思いました。
以下の完全なコード。
c++ - C++ で同等の fgets
C関数に相当するC++は何fgets
ですか?
getline
から見たifstream
のですが、行末文字に'\n'
なると で終わって捨ててしまいます。行末文字で終了するだけで、行末文字をchar
配列に追加する関数を探しています。
c++ - 読み取る文字数がわからない場合のfgetsの使用方法は?
ファイルを読み取って、そのファイルから文字列にテキストを送信して、解析できるようにする必要があります。ただし、プログラムはファイルの長さを正確に認識しないので、使用したい場合はどうすればfgets()
よいですか、またはより良い代替手段がありますか?
ノート:
c - fgetsの指示がスキップされるのはなぜですか?
fgetsの前にscanfを実行すると、fgets命令がスキップされます。私はC++でこの問題に遭遇しましたが、stdinバッファなどをクリアするための指示が必要だったことを覚えています。Cに相当するものがあると思います。それは何ですか?
ありがとう。
perl - Perlでは、ファイル(fgetsなど)から読み込むときに行の長さを制限できますか?
ファイルを1行ずつ読み取り、一定量の入力データまで各行を格納するコードを作成しようとしています。異常に大きなファイルを吸い込むのを防ぐだけでなく、エンドユーザーが悪意を持って1行にデータのギグのようなものを置くのを防ぎたいです。やる$str = <FILE>
ことはまだ全行を読みます、そしてそれは非常に長くて私の記憶を爆破するかもしれません。
fgetsを使用すると、各呼び出し中に読み取るバイト数を指定し、基本的に1つの長い行を最大長に分割することができます。perlでこれを行う同様の方法はありますか?私は何かを見ましたsv_gets
が、それをどのように使うのかわかりません(私は大雑把なグーグル検索をしただけですが)。
この演習の目的は、データの読み取り後に追加の解析/バッファリングを行う必要がないようにすることです。fgetsは、Nバイト後、または改行に達したときに停止します。
編集私はいくつか混乱したと思います。それぞれ最大長YのX行を読みたい。合計でZバイトを超えて読みたくないので、一度にすべてのZバイトを読みたくない。私はそれをして行を分割することができたと思いますが、他の方法があるかどうか疑問に思います。それが最善の方法である場合は、読み取り関数を使用して手動解析を実行するのが私の最も簡単な方法です。
ありがとう。
c - C-scanf()vs get()vs fgets()
私は文字列(数字が入力されていると仮定)を整数に変換するかなり簡単なプログラムを実行してきました。
終わった後、私は答えることができないいくつかの非常に独特な「バグ」に気づきました。これは主にscanf()
、gets()
とfgets()
関数がどのように機能するかについての知識が限られているためです。(私はたくさんの文学を読みましたが。)
したがって、あまり多くのテキストを書かずに、プログラムのコードを次に示します。
これが私が抱えている問題です。まず、gets()
関数を使用する場合、プログラムは完全に機能します。
次に、を使用する場合、関数が最後に改行(ASCII値10)文字を読み取りfgets()
、結果を台無しにするため、結果はわずかに間違っています。fgets()
第三に、scanf()
関数を使用する場合、最初の文字は明らかに-52 ASCII値を持っているため、結果は完全に間違っています。これについては、説明がありません。
これは使用が推奨されていないことがわかったので、ここで改行文字を読み取らない(または無視しない)ようにgets()
使用できるかどうかを知りたいと思います。fgets()
また、scanf()
このプログラムの機能はどうなっていますか?
c - ファイルを読み込んで文字列の長さを取得する
gcc 4.4.4 c89
次のコードを使用して、fgetsを使用してファイルを読み込みます。MまたはFのいずれかの性別を取得したいだけです。
ただし、性別は常に文字列の最後の文字であるため。strlenを使えばキャラクターが手に入ると思いました。ただし、何らかの理由で、strlenとマイナス2を取得する必要があります。strlenにヌルが含まれていないことはわかっています。ただし、キャリッジリターンは含まれます。
私が読んでいるテキストの正確な行はこれです:
私のコード:
strlenは、16を返す必要があると感じたときに17を返します。キャリッジリターンを含む文字列の長さ。-2ではなく-1を実行する必要があると感じています。
あなたが私の質問を理解するならば、どんな提案でも。
ありがとう、
編集:
したがって、バッファには次のものが含まれます。
\ rが含まれている場合、strlenから17を返すのはどれですか?私はそれを考えるのは正しいですか?
c - パスワードを取得しない
以下のlesson2()のコードでは、関数を入力するためにパスワードを使用しましたが、関数を入力すると、パスワードが取り込まれず、間違ったパスワードが表示されます。パスワードを取り込まないことで、使用したと言う意味ですgets でもパスワードを入力するのを待っています。gets を使わないように言わないでください!
scanf だと思いますし、一緒に問題を作ってます!
php - PHP スクリプトが徐々に遅くなる (ファイル リーダー)
タイマーに逆らうと、徐々に遅くなるスクリプトがあります。行を読み取り、それをチェックしてデータベースに追加し、次の行に進むだけなので、非常に簡単です。
徐々に悪化している出力は次のとおりです。
残念ながら、このファイルは約 20 GB 程度なので、この速度ですべてが読み込まれる頃にはおそらく死んでいるでしょう。コードは(主に)以下にありますが、 fgets() と関係があると思われますが、何がわからないのですか。
前もって感謝します!
編集:
「save_record ($data, $line);」のコメントアウト 何もしないようです。
php - fgetsの結果の後の自動スペース?
fgetsが返すすべての後にスペースを置くように見えます。次にいくつかのサンプルコードを示します。
これは
行の内容と「単語」の間にスペースがあるのはなぜですか?そして、なぜこのスペースがファイル(Blablablaword)の最後にないのですか?
このスペースを取り除く方法を教えてください。どうもありがとう :-)!