問題タブ [feof]
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 - 最後の反復が繰り返されるのはなぜですか?
私の質問は、最後のレジストリを 2 回繰り返す while(!feof(arch)) に関するものです。お時間を割いてご回答いただきありがとうございます。基礎を学んでいる1年生です。
情報はアーカイブにあるため、最初の入力は初めてではないため、最初の入力は 's' であってはなりません。次に、プログラムは情報を一覧表示しますが、最後のレジストリは 2 回繰り返されます。
c - ファイルから読み取り、feof() を使用してループを終了する
このリンクfeof()
は、ループの終了インジケーターとして使用するのが悪い理由について説明しています。
安全でない ==> feof()
while にチェックがあり、while のfgets()
中にあります。
安全==> fgets()!=NULL
while自体にチェックがあります。
安全でないコードが余分な while ループの反復を行っているのを確認することになっていますが、どちらも同じ (かつ正しい) ループ回数を行っています。誰かがここで何が起こっているのか理解するのを手伝ってくれますか?
編集:リンクは実際にこれが起こっている理由を述べていましたが、私が読んでいるものを正確に理解するには、以下の正しい答えが必要でした. 私のファイルには最後の行に「\ n」がなかったため、同じ結果が得られました。
これはファイルの内容です:
コードは次のとおりです。
出力は次のとおりです。
c - ファイル名を削除できず、一時ファイルの名前を database-aluno.txt に変更できません
アルゴリズムとデータ構造の件名のソリューションを開発しようとしています。データベースに存在する数(行数に対応)で読み取った数を比較して学生を取る機能があります。
システムが食事に入るとすぐに発生します。これは、毎週の各日で 1 つだけです。これまでのところ、問題はありません。
システムは生徒の残高をチェックし、生徒の残高が 0.0 または 3 未満の場合 (各食事の費用)、システムはプロンプトを表示するか、自動的に残高の積み込みを推奨し、ほとんどすべての手順を正しく実行します。
おそらくいくつかの実装されたサイクルが原因で、ほとんどすべてがうまくいくことがわかりましたが、関数命令の最後に命令remove(filename); and
rename("backup.c",filename);`
コード:
どうすればこの問題を解決できますか? if と while サイクルで問題になりますか?
c - 言語 c でエンド ファイル テキストにテキストを追加する方法
ファイルの末尾に新しいテキストを追加するためだけに最後のテキストを削除せずに、このファイルに別のテキストを追加したいテキストを含む C 言語のファイルがあります。
c - 数字、文字、記号を含む不明なファイルから読み取る方法は?
float を含む行の長さが不明なファイル (約 1500 行なので、メモリが十分であるため、malloc/alloc などは必要ありません...幸いなことに、これらの配列/ポインターコマンドをまだ理解していないため) をどのように読み取ることができますか?数字、記号、文字、そこから特定の数字を抽出し、いくつかの計算を行って別のファイルに書き戻しますか?
3 つの例:
php - ファイルの終わりの前に true を返す PHP feof()
ここ数日、ファイルの終わりの前に feof() 関数が true を返すという奇妙な PHP の問題に取り組んでいます。以下は私のコードのスケルトンです:
多くのテストを通じて、プログラムは 1 つのファイルを除いてすべて正常に動作することがわかりました。
- ファイルはローカル ドライブに保存されます。
- このファイルは約 800 万行の長さで、平均して 1 行あたり約 200 ~ 500 文字です。
- クリーニング済みで、ヘキサエディタで精査したところ、異常な文字は見つかりませんでした。
- プログラムは、ファイルの最後に達したと思われる場合 (約 800K 行が残っているにもかかわらず)、7172714 行で一貫して失敗します。
- 1 行あたりの文字数が少ないが 2000 万から 3000 万行のファイルでプログラムをテストしましたが、問題はありませんでした。
- http://php.net/manual/en/function.fgets.phpのコメントからコードを実行してみましたが、問題を引き起こしているのが自分のコードの何かであり、サードパーティのコードが同じで失敗したかどうかを確認するためだけですライン。編集: サードパーティのコードが fgets() の代わりに fread() を使用したことも言及する価値があります。
- fgets 関数でいくつかのバッファ サイズを指定しようとしましたが、どれも違いはありませんでした。
var_dump($meta) からの出力は次のとおりです。
ファイルの終わりの前に feof が true を返す原因を突き止めようとすると、次のいずれかを推測する必要があります。
A) 何かが原因で fopen ストリームが失敗し、何も読み取れません (feof が true を返す)
B) いっぱいになって大混乱を引き起こしているバッファがどこかにある
C) PHP の神々は怒っている
他の誰かがこの問題を抱えているかどうかを広く検索しましたが、ファイルがバイナリ モードではなくテキスト モードで読み込まれ、問題を引き起こしていた C++ 以外のインスタンスを見つけることができませんでした。
更新: 読み取り関数が繰り返された回数と、その横にあるエントリに関連付けられたユーザーの一意の ID を常にスクリプトに出力させました。スクリプトは 7175502 のうちの 7172713 行の後でまだ失敗していますが、ファイル内の最後のユーザーの一意の ID が 7172713 行に表示されています。問題は、何らかの理由で行がスキップされて読み取られていないようです。すべての改行が存在します。
c - C - fread で feof() を使用する
いくつかのバイナリ ファイルを読み取って、動的リストに保存する必要があります。以下を参照して、私が行った方法でそれを実行し、読み取ったすべての製品を印刷すると、コンソールには、すべてのフィールドが 0 に設定された (または配列の場合は欠落している) 2 つの製品が表示されます。何が間違っているのか理解できません。修正を手伝ってもらえますか?
c - C の Feof エラー
私が基本的にやろうとしているのは、ファイルから行を取得し、それらをリンクされたリストに入れることです。ただし、「feof」機能により、パートプログラムが停止中に実行が到達した場合。私はこれの問題を理解できませんでした。
ご協力いただきありがとうございます。
php - PHP: 特定の値が等しい場合に csv 行をグループ化する
難しいとは思わないでください。しかし、1 日のハードな作業の後で、私はこの些細な問題を克服することができません。column の値から行をグループ化して、php で表示する必要がある単純な csv ファイルがあります。私たちは具体的に行きます :
これは私のCSVファイルです:
そして、これは私が印刷したいものです:
私の出発点はこれです: