C ランタイム エラー:「ファイル読み取り/書き込みエラー」を解決するにはどうすればよいですか?
C プログラミング プロセス中に、ファイルの読み取りおよび書き込みエラーが頻繁に発生します。最も一般的なエラーの 1 つは、「ファイル読み取り/書き込みエラー」です。この種のエラーは通常、プログラムの動作の中断につながり、開発者に何らかのトラブルをもたらします。この記事では、このエラーの原因といくつかの解決策を説明します。
まず、「ファイルの読み取り/書き込みエラー」の原因を理解する必要があります。このエラーは通常、ファイルの読み取りまたは書き込み中に問題が発生した場合に発生します。考えられる理由としては、ファイルが存在しない、ファイルが他のプログラムによって占有されている、アクセス許可が不十分であるなどが考えられます。次に、これらの問題を解決する方法を見てみましょう。
std::ifstream
クラスの is_open()
関数を使用して、ファイルが存在するかどうかを判断します。無事に開きました。ファイルが存在しない場合は、新しいファイルを作成するなどの手順を実行できます。 #include <iostream> #include <fstream> int main() { std::ifstream file("example.txt"); if (!file.is_open()) { std::cout << "File does not exist." << std::endl; // 创建新文件 std::ofstream newFile("example.txt"); } // 文件存在,继续读取或写入操作 return 0; }
std::this_thread::sleep_for()
関数を使用すると、一定期間後に再試行できます。 #include <iostream> #include <fstream> #include <chrono> #include <thread> int main() { std::ofstream file("example.txt"); if (!file.is_open()) { std::cout << "Failed to open file." << std::endl; return -1; } // 尝试写入文件,如果失败则等待1秒后再次尝试 bool success = false; while (!success) { try { file << "Hello, world!" << std::endl; success = true; } catch (std::ofstream::failure e) { std::cout << "Unable to write to file." << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } } // 写入成功后关闭文件 file.close(); return 0; }
chmod()
などのファイル システム関連の関数を使用して、ファイルのアクセス許可を変更できます。 #include <iostream> #include <fstream> #include <sys/stat.h> int main() { std::ofstream file("example.txt"); if (!file.is_open()) { std::cout << "Failed to open file." << std::endl; return -1; } // 尝试写入文件,如果失败则更改文件权限 bool success = false; while (!success) { try { file << "Hello, world!" << std::endl; success = true; } catch (std::ofstream::failure e) { std::cout << "Unable to write to file." << std::endl; // 更改文件权限 chmod("example.txt", S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH); } } // 写入成功后关闭文件 file.close(); return 0; }
要約: C プログラミングでは、「ファイル読み取り/書き込みエラー」はよくある問題ですが、解決可能です。このエラーは、ファイルが存在するかどうか、ファイルが他のプログラムによって占有されているかどうか、およびファイルのアクセス許可を確認することで解決できます。解決できない場合は、ファイルの移動や削除など、他のファイル システム関連の操作を試すことができます。この記事で説明した解決策が、「ファイル読み取り/書き込みエラー」エラーをより適切に処理するのに役立つことを願っています。
以上がC++ ランタイム エラー:「ファイルの読み取り/書き込みエラー」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。