Mengapakah Menulis std::string pada Fail Menghasilkan Kotak Daripada Teks?

Linda Hamilton
Lepaskan: 2024-11-26 21:00:17
asal
983 orang telah melayarinya

Why Does Writing a std::string to a File Produce Boxes Instead of Text?

Cara Menulis std::string ke Fail Tanpa Melihat Kotak

Soalan:

Apabila menulis pembolehubah std::string ke fail menggunakan kaedah write(), fail yang terhasil memaparkan kotak dan bukannya rentetan yang dijangkakan. Adakah std::string sesuai untuk senario ini, atau patutkah pendekatan alternatif dipertimbangkan?

Jawapan:

std::string memang sesuai untuk menulis ke fail, tetapi kaedah write() bertujuan untuk data binari. Untuk menulis rentetan dalam format teks, pertimbangkan untuk menggunakan objek ofstream. Berikut ialah contoh:

#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;
}
Salin selepas log masuk

Untuk penulisan binari, gunakan kaedah c_str() untuk mendapatkan data aksara asas dan tuliskannya pada fail:

#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;
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah Menulis std::string pada Fail Menghasilkan Kotak Daripada Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan