분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
옵션 |
|
아래 코드는 파일에 쓰여있는 Customer라는 글자를 Admin이라는 글자로 바꾸는 코드입니다.
끝이 NULL로 잘 처리가 안 된것인지 Admin이 아니라 기존의 텍스트(Customer)와 겹쳐서 Adminmer가 되어버립니다.
Customer의 글자수가 더 많기 때문에 Admin에서 Customer로 바뀌는데는 지장이 없습니다.
바꾸기 전의 글자수가 바꾸고 싶은 글자수보다 이처럼 적은 경우는 문자의 뒷 부분이 기존 글씨와 글씨가 겹치는데 어떻게 해야할까요?
NULL을 제대로 삽입을 해야할 거 같긴한데.. 어찌해야할지 모르겠네요.
(Admin + 띄어쓰기가 아니라 딱 Admin까지만 나오게 하고 싶습니다.)
fstream fs;
fs.open(getLoginedID() + ".dat", /*fstream::binary |*/ fstream::in | fstream::out);
string str((istreambuf_iterator<char>(fs)), istreambuf_iterator<char>());
size_t pos = str.find("Customer");
if (pos != string::npos) {
cout << "string found at position: " << int(pos) << endl;
fs.seekp(pos);
fs << "\nAdmin";
fs.put('\0');
//fs.write("\nAdmin\0", 7); 이 방법으로도 되지 않음
}
fs.close();
}
죄송합니다. 댓글 작성은 회원만 가능합니다.