문자열 형식으로 사용자 입력을 처리할 때 저장을 위해 파일에 쓰는 것이 일반적입니다. 그러나 ofstream의 write() 메서드를 사용하여 그렇게 하려고 하면 예상치 못한 결과가 발생할 수 있습니다.
std::string이 다음과 같다는 점을 이해하는 것이 중요합니다. 문자열의 값과 길이를 내부적으로 저장하는 복잡한 데이터 구조입니다. std::string과 함께 write()를 사용하면 실제로 이 내부 표현을 파일에 씁니다. 이 바이너리 데이터는 파일을 열 때 텍스트로 올바르게 표시될 가능성이 낮습니다.
파일에 일반 텍스트를 쓰는 경우 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!