問題タブ [fgetc]
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++ - Fstream_Fgetc アクセス違反
fstream を使用してファイルから行を読み取りたいのですが (以前はエラーなしでこれを使用していました)、getline を呼び出すと、アクセス違反の例外が発生します。fstream から関数 _Fgetc へのコードを介して例外を追跡しました。その「if」行は例外をスローしますが、その理由はわかりません。
おそらくファイル ポインタは null だと思いますが、どうすればよいでしょうか。または、私の機能が間違っていますか?Visual Studio 2010 の設定を見逃していませんか?
私は使用しています:
私の機能:
例外を引き起こす fstream からの _Fgetc:
fstream には別の 3 つのオーバーロードされた関数 _Fgetc があり、いくつかは fread、fgetwc を使用していますが、どの関数を使用するかを制御するにはどうすればよいですか?
編集:私のスタックから抽出:
c - fgetc()からの入力の読み取りとprintf()による印刷
さて、ここで私が見逃しているものがあると確信していますが、それが何であるかはわかりません。誰かがそれを理解するのを手伝ってくれることを願っています。
コマンドラインから入力を読み込んでいて、fgetc()を使用してそれを行う関数を書いていました。ただし、一見表面的な機能の変更により、動作が完全に異なります。
これはmain()関数です:
そして、これはread_flush()のバージョンの1つです。
これは問題なく動作します。入力を入力すると、吐き出されます。ただし、この次のバージョンでは、mainは、ユーザーに入力を入力する機会を与えずに、「Entercommand:」を繰り返し出力します。
ここでfgetc()の微妙な点が欠けていますか?
c - fgetcは内部でどのように機能しますか
実際に文字ごとに読み取りますか、それともカーネルバッファにいくつかのバイトを読み取り、文字ごとにユーザーに戻りますか?
と同じfgets
ですか?
glibcとgccコンパイラを使用しているとしましょう。
c - C-fgetcを使用して値を列挙型'クラス'に格納します
データベースエントリを含むファイルを受け入れるプログラムを作成しています。エントリはすべて同じ形式で、データは同じ順序です。ファイルの最初の数字はエントリの数です。その場合、データは次のようになります。LastNameFirstNameStudentID年齢年GPAexpectedGraduationDate
例:Doe John1234567823新入生4.02013
私の問題は年の値です。タイプ「クラス」として宣言することになっています。enum class{freshman, sophomore, junior, senior, grad};
次の宣言を含むヘッダーファイルがあります。
次に、私のメインファイル:
*更新されたエラー
main.c:75:警告: `memcpy'の引数1を渡すと、キャストなしで整数からポインターが作成されます
main.c:75:警告: `memcpy'の引数2を渡すと、キャストなしで整数からポインターが作成されます
main.c:77:`memcpy'の引数2と互換性のない型
main.c:83:`memcpy'の引数2と互換性のない型
main.c:89:警告: `memcpy'の引数2を渡すと、キャストなしで整数からポインターが作成されます
main.c:94:「DBrecord」の前の解析エラー
ですから、私はmemcpyでやろうとしていることができないか、間違っているだけだと思います。提案?
c - fgetc() が正しく動作しない
7 4 5 1 などのファイルがあります。これらの数値を多次元配列に入れたいと思います。
このコードは正しく動作しません。sudokuArray[0][0] は結果 true (ファイルの最初の数字) を返しますが、[0][1] は 131231304 のような乱数を返します。何故ですか?
c - fgetc、EOF のチェック
本Linux System Programmingで、私は次のようなものを読みました:
fgetc
ファイルまたはエラーの最後にorunsigned char
へのキャストとして読み取られた文字を返します。使用する一般的なエラーは次のとおりです。int
EOF
fgetc
このコードの正しいバージョンは次のとおりです。
では、なぜchar
と比較する前に戻り値をキャストできないのEOF
でしょうか? EOF
と正確に比較する必要があるのはなぜint
ですか? としてEOF
定義されているよう-1
に、通常は にキャストされchar
ませんか?
そうでないプラットフォーム/コンパイラはありますか?
c - C: ファイル ストリームからの fgetc 入力の処理
OK、私は C でスペルチェック プログラムに取り組んでいます。ちょっと困っているのは、システム辞書からプログラムに単語を読み込むことです。私は答えを探しましたが、おそらくこれはかなり初歩的なことであるために、まったく正しいものを見つけることができませんでした. これが私がこれまでに得たコードです。
呼び出しとともに関数呼び出しで使用される変数は次のとおりです。
辞書は /usr/share/dict/words を指しており、正しく開くことを確認するコードがありますが、この質問には入れませんでした。結局それが問題なのかもしれません。これは Aarhus を出力するはずですが、代わりに次のように出力します。
プログラムが 16 行目を実行するたびに、ファイルの位置が次の文字に更新されるのではないかと思っています。ポインタが 2 番目の文字から始まる場合、出力は Aarhus の 1 文字おきに表示されます。
readWord 関数は、チェックするテキスト ファイルから個々の単語を読み取るためにも使用されます。これが、getline を使用しなかった理由です。終端のヌル文字とともにバッファを文字列にフラッシュして表示する関数は他にもあります。これは、ファイルから一度に 1 つの単語を取得する処理を行うビットです。
c - ファイルから文字を読み取る
私のプログラムが間違った結果を得る理由を知りたいです。空白、(.)、(,) などを含むファイルから文字を読み取り、特定の文字列形式で出力するだけです。その結果、300 以上の char 読み取りインスタンスとその奇妙な表現が得られます。実際の文字とそのメモリ ロケーションを出力する必要があります。感謝します!
c - ファイルの 2 回目の読み取りで fgetc が機能しないようです
ファイル SORTED.txt を最初に使用して閉じた後、再度開いて読み取ります - 別のファイル UNSORTED.txt のすべての内容をコピーします。UNSORTED.txt からコピーした後、コピーした行数を (コピー プロセス中ではなく、別のプロセスとして) カウントしたかったのです。2 回目は fegtc() がファイル (SORTED.txt) の先頭を指していないようです。そのため、lines の値は初期化された 0 のままです。 fgetc() を考慮して、ファイルを閉じて再度開くことなく行われましたか?
助けてくれてありがとう。
乾杯!