ボックスを表示せずに std::string をファイルに書き込む方法
質問:
write() メソッドを使用して std::string 変数をファイルに書き込むと、結果のファイルには代わりにボックスが表示されます期待される文字列。 std::string はこのシナリオに適していますか、それとも別のアプローチを検討する必要がありますか?
回答:
std::string は確かにファイルへの書き込みに適しています。ただし、write() メソッドはバイナリ データを対象としています。文字列をテキスト形式で書き込むには、ofstream オブジェクトの使用を検討してください。以下に例を示します:
#include <fstream> #include <string> #include <iostream> int main() { std::string name; std::cout << "Enter your name: "; std::cin >> name; std::ofstream out("name.txt"); out << name; // Writes the string to the file in text format out.close(); return 0; }
バイナリ書き込みの場合、c_str() メソッドを使用して基礎となる文字データを取得し、それをファイルに書き込みます:
#include <fstream> #include <string> #include <iostream> int main() { std::string password; std::cout << "Enter your password: "; std::cin >> password; std::ofstream out("password.bin", std::ios::binary); out.write(password.c_str(), password.size()); // Writes the password in binary format out.close(); return 0; }
以上がstd::string をファイルに書き込むとテキストではなくボックスが生成されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。