상자를 보지 않고 파일에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!