Apabila mengendalikan input pengguna dalam bentuk rentetan, adalah perkara biasa untuk menulisnya ke fail untuk simpanan. Walau bagaimanapun, percubaan untuk berbuat demikian menggunakan kaedah write() ofstream boleh membawa kepada hasil yang tidak dijangka.
Adalah penting untuk memahami bahawa std::string ialah struktur data kompleks yang menyimpan nilai rentetan dan panjangnya secara dalaman. Apabila menggunakan write() dengan std::string, ia sebenarnya menulis perwakilan dalaman ini ke fail. Data perduaan ini tidak mungkin dipaparkan dengan betul sebagai teks apabila fail dibuka.
Untuk menulis plaintext kepada fail, pendekatan yang disyorkan ialah menggunakan objek ofstream , yang bertindak seperti std::cout untuk menulis ke fail. Contoh kod berikut menggambarkan pendekatan ini:
#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; }
Jika anda perlu menulis perwakilan binari sebenar rentetan, dan bukannya nilai plaintextnya, anda boleh menggunakan string::c_str() untuk mendapatkan semula penunjuk kepada data mentah dan panjangnya untuk write(). Coretan berikut menunjukkan perkara ini:
write.write(studentPassword.c_str(), studentPassword.size());
Dengan menggunakan teknik ini, anda boleh menulis kedua-dua rentetan teks biasa dan data binari pada fail, bergantung pada keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menulis Rentetan dengan Betul ke Fail dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!