問題タブ [cfile]
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#アプリとのC++ CFile共有が機能しませんか?
C++ アプリケーションで作成および設定されたファイルを、C++ アプリケーションでまだ開いている間に、別の C# アプリケーションで読み取ることができません。
次の行でファイルを作成します。
私も次の行を使用してみました:
と:
同じ結果で。
次に、C#アプリで、ファイルを開く2つの異なる方法を試しました:
と
どちらの方法でもエラーがキャッチされます。
別のプロセスで使用されているため、プロセスはファイル 'filename.txt' にアクセスできません。
C++ アプリはファイルを作成し、CreateProcess を使用して c# アプリを実行します。
C++アプリで共有権限を追加してもメモ帳でエラーが発生しないため、ファイルを読み取ろうとするc#コードに問題があると予想されますが、権限を設定しないとエラーが発生します。
最終的には、Soonts の提案で思い通りに動作するようになりました。
c++ ファイル共有オプションを次のように設定します。
C# アプリケーションがファイルを読み取れるようにしますが、書き込みはできません。
次のようにファイルを読み取るC#アプリで:
ファイル アクセスを読み取り専用に設定します。ただし、ファイル共有のアクセス許可を readwrite に設定すると、別のアプリケーションによってファイルが書き込まれている間にファイルを開くことができます。私が間違っていたのは、ファイルが開かれる前に C++ アプリケーションと競合したため、ファイル共有のアクセス許可を読み取り専用にすることでした。それで開かなくなりました。
c++ - CFile で改行 (改行文字) をチェックする
を使用して、ファイルが改行で終了しているかどうかを確認する必要がありますCFile
。私が試したこと:
- ファイルポインタをファイルの末尾に向ける
- ポインタを 2 単位後ろに移動する
- ポインターが上を指しているかどうかを確認する
\r\n
これが私のコードです:
しかし、私が見つけたのは、バッファが\n
文字とガベージ文字 (204 のような奇妙な値) を与えることです。ドキュメントを調べたところ、単一の文字としてCFile::Read
のみカウントされることがわかりました。\r\n
テキスト モード ファイルの場合、キャリッジ リターンとラインフィードのペアは 1 文字としてカウントされます。
ファイルポインタは明らかに2文字を数えますが、両方を取得できないため、私はとても混乱しています。CFile でファイルの末尾にある改行をチェックする方法はありますか?
c - C ファイル処理における scanf/gets の問題
このコードを実行すると、「メール」入力を取得するための最終的な scanf 関数が実行されず、「正常に更新されました!」というメッセージが表示されます。直接メッセージを!gets()
scanf の代わりに使用してみましたが、同じ問題が発生しています。誰かが私に問題を説明してもらえますか?