std::ofstream ofs;
ofs << "Hello, world!" << endl;
이제 디스크에 쓰기 전에 의 내용을 "Hello, money!"
으로 수정하고 싶습니다. 어떻게 구현할 수 있습니까?디스크에 쓰기 전에 ofstream을 수정할 수 있습니까?
std::ofstream ofs;
ofs << "Hello, world!" << endl;
이제 디스크에 쓰기 전에 의 내용을 "Hello, money!"
으로 수정하고 싶습니다. 어떻게 구현할 수 있습니까?디스크에 쓰기 전에 ofstream을 수정할 수 있습니까?
std::endl
IO 조작기는 스트림 버퍼이므로으로 변경해야합니다.나중에 해당 내용이 플러시되기 전에 스트림을 처리하려는 경우
실제로이 작업을 수행하려는 이유는 서식을 지정하여 작성하려는 문자열을 조작해야하기 때문이며 std::ostringstream
을 사용할 수 있다는 사실을 사용자에게 알려야합니다. 형식화 된 스트리밍의 기능을 활용하고 문자열로 결과를 수집 한 다음 조작하여 일반적으로 파일에 쓸 수 있습니다.
이 정보가 분명하고 유스 케이스가 더 복잡한 경우 @MatsPetersson이 지적한대로 자체 스트림 버퍼를 작성해야합니다.
편집 :. 당신이 토론 myfilebuf
의 목적을 위해 (filebuf
에서 파생 된 클래스를 만들고 위보다 더 정확하다, ostream
를 구성 할 것을 사용해야 myfilebuf
당신이 sputbackc
을 구현에서
하고, "Hello, World!"를 식별하고 "Hello, Money!"로 바꾸려면 statemachine을 사용하고 어떤 것을 알기 전까지는 두 번째 레이어를 버퍼링하는 것이 좋습니다.