게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C++ string 작성시 마지막 글자에 null추가하려면 어떻게 하죠
게시물ID : programmer_19186짧은주소 복사하기
작성자 : 첫댓평생솔로
추천 : 0
조회수 : 660회
댓글수 : 16개
등록시간 : 2016/12/02 21:35:06
옵션
  • 본인삭제금지

아래 코드는 파일에 쓰여있는 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();

}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호