文字列の形式でユーザー入力を処理する場合、保存するためにファイルに文字列を書き込みたいと思うのが一般的です。ただし、ofstream の write() メソッドを使用してこれを実行しようとすると、予期しない結果が生じる可能性があります。
std::string は文字列の値とその長さの両方を内部に格納する複雑なデータ構造。 write() を std::string とともに使用すると、実際にはこの内部表現がファイルに書き込まれます。このバイナリ データは、ファイルを開いたときにテキストとして正しく表示される可能性は低いです。
ファイルにプレーンテキストを書き込む場合、推奨されるアプローチは ofstream オブジェクトを使用することです。 、ファイルに書き込むための std::cout のように機能します。次のコード サンプルは、このアプローチを示しています。
#include <fstream> #include <iostream> int main() { std::string studentName; std::cout << "Enter your name: "; std::cin >> studentName; std::ofstream outFile("output.txt"); outFile << studentName; outFile.close(); return 0; }
文字列のプレーンテキスト値ではなく、実際のバイナリ表現を書き込む必要がある場合は、次のように使用できます。 string::c_str() を使用して、生データへのポインタとその長さを write() 用に取得します。次のスニペットはこれを示しています。
write.write(studentPassword.c_str(), studentPassword.size());
これらの手法を使用すると、特定の要件に応じて、プレーンテキスト文字列とバイナリ データの両方をファイルに効果的に書き込むことができます。
以上がC でファイルに文字列を正しく書き込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。