퀵바


강호정담

우리 모두 웃어봐요! 우리들의 이야기로.



혹시 C++ 하시는 분...?

작성자
Personacon 엔띠
작성
14.03.02 18:48
조회
2,004

저 과제의 유일 문제점을 파악해서 분석하는 것에는 성공했습니다만,

문제의 해결법을 찾지 못하고 있습니다.

혹여나 정확한 지식이 아니더라도, 문제해결의 방향만 제시해주셔도 좋습니다.


STL의 ifstream으로 파일(txt)을 불러오고,

그걸 open으로 열어서 eof를 이용해 하나씩 전진하며

get을 통해 하나씩 전진하는 모든 글자를 string에 저정해버리는 방식을 쓰고 있습니다.

이게 잘되는데 유일한 문제점이, 바로 한글은 1바이트가 아니라 2바이트라서,

character형 변수에 저장이 되지 않는다는 겁니다.

그렇다보니 파일 전체의 크기도 실제와는 오차가 발생해버리고 있습니다.

2바이트인 한글은 character가 아니라 string에 저장해야 하는 듯한데,

get을 통해 하나씩 꺼내면 string 저장은 불가피하고 character 저장만이 가능하겠죠.

그렇다고 get 대신에 한 번에 2바이트인 한글을 빼올 수도 없는 것처럼 보이고, 만일 그게 가능하다면 1바이트인 알파벳이나 숫자를 빼버릴 때 문제가 생길 듯 싶고요.

지금 꺼내려는 값을 분석해서 이놈이 한글인지 아닌지, 1바이트인지 아닌지를 구분해서 다르게 저장하려고 해도 여간 복잡하고요.


네이버에는 답을 올려도 답변이 안 오고요......

혹시 해결방법을 아시는 분 계신가요?

아니면 C++ 정보 교환하는 사이트라도...


Comment ' 14

  • 작성자
    Personacon 적안왕
    작성일
    14.03.02 19:18
    No. 1

    아래 링크 한번 봐주시겠어요?
    http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=184239113&qb=YysrIO2VnOq4gCAy67CU7J207Yq4IGdldA==&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=RxKvnlpySDlssu3QWtssssssstR-398312&sid=UxL-QgpyVloAABs0c5E

    찬성: 0 | 반대: 0

  • 답글
    작성자
    Personacon 엔띠
    작성일
    14.03.02 19:26
    No. 2

    볼 때마다 신기합니다........ 예전 스페이드부터 시작해서. 검색 능력이 발군이신........
    해답까지는 아니지만, 뭔가 힌트는 얻었습니다. %128을 연산하면 한글인지 아닌지를 알 수 있다....
    문제는 한글이 2바이트라고 해서, 1바이트 2번으로는 얻어낼 수 없다는 것에 있죠 ㅜㅜ

    찬성: 0 | 반대: 0

  • 답글
    작성자
    Personacon 적안왕
    작성일
    14.03.02 19:30
    No. 3

    한글 코드 관련 자료입니다.
    제가 처음에 단 댓글은 별 도움이 안될 듯한 것이 ; . ;
    http://lifeiseggs.tistory.com/523
    아래 링크는 한글 판별이라네요.
    http://lifeiseggs.tistory.com/522

    찬성: 0 | 반대: 0

  • 작성자
    Lv.82 디메이져
    작성일
    14.03.02 19:35
    No. 4

    음. 그러니 멀티바이트를 버리고 유니코드로 전환하세요.

    찬성: 0 | 반대: 0

  • 답글
    작성자
    Lv.82 디메이져
    작성일
    14.03.02 19:39
    No. 5

    char형 쓰는 걸 버리고 tchar형 쓰는 걸 추천.

    찬성: 0 | 반대: 0

  • 답글
    작성자
    Personacon 엔띠
    작성일
    14.03.02 19:43
    No. 6

    지금부터 바로 검색은 하겠지만 조금 더 자세한 정보를 부탁드립니다.

    찬성: 0 | 반대: 0

  • 작성자
    Lv.76 석박사
    작성일
    14.03.02 19:43
    No. 7

    말씀하시는 저 과제가 뭔가요?

    찬성: 0 | 반대: 0

  • 답글
    작성자
    Personacon 엔띠
    작성일
    14.03.02 19:43
    No. 8

    어느 회사 과제전형 ;ㅅ;

    찬성: 0 | 반대: 0

  • 작성자
    Lv.76 석박사
    작성일
    14.03.02 19:45
    No. 9

    아니.. 질문하시는 바가 정확히 뭔지를 모르겠어서요

    찬성: 0 | 반대: 0

  • 작성자
    Lv.76 석박사
    작성일
    14.03.02 19:46
    No. 10

    파일 복사면 버퍼에 한꺼번에 집어넣어서 처리해도 될텐데 한 글자씩 복사하시는 이유를 잘 모르겠습니다. 다른 특별한 제약조건이 있는지요?

    찬성: 0 | 반대: 0

  • 답글
    작성자
    Personacon 엔띠
    작성일
    14.03.02 19:51
    No. 11

    걍 제가 잘 모르는 것도 있고, 이 과제에서 요구하는 조건 때문에 하나씩 읽는 편이 낫다고 생각되서입니다.

    찬성: 0 | 반대: 0

  • 작성자
    Personacon HAWX
    작성일
    14.03.02 19:51
    No. 12

    char 형식의 ifstream 대신 wchar_t 형식인 wifstream을 써보시기 바랍니다.
    뭐, VC++에서는 유니코드 환경인지, 아닌지에 따라서 매크로를 지원하기 때문에
    tifstream, tofstream을 사용하시면 알아서 ifstream이냐 wifstream이냐가 갈리니 좋습니다.

    이 때, char 형식이 아니라 wchar_t (매크로로는 TCHAR)를 사용하셔야 합니다.

    찬성: 0 | 반대: 0

  • 작성자
    Personacon 구라백작
    작성일
    14.03.02 20:16
    No. 13

    unsigned char형을 써보세요. 1바이트씩 읽더라도 문제가 없는 것이 한글 및 유니코드는 캐릭터셋이 a~Z 까지 이외의 형을 사용 합니다. (정수형 값으로 캐릭터셋은 0~255까지의 숫자를 이용 합니다. 이것을 조합해서 유니코드,euckr등의 2바이트 문자형을 만듭니다.)
    즉, 1바이트씩 로드할때 특수문자,0~9,a~Z이외는 2바이트로 나중에 합치면 됩니다.
    c++의 초기형은 표준C이죠. 표준C의 확장형+객체지향이 포함 된 것이 c++입니다.
    기본 C에만 충실해도 c++도 어느정도 커버가 됩니다.
    그리고 과제 내용을 오픈 하는 것이 더 나을듯 합니다. ^^;;

    찬성: 0 | 반대: 0

  • 작성자
    Personacon 엔띠
    작성일
    14.03.02 20:23
    No. 14

    C++ 급조 및 독학의 한계가 드러나고 있습니다.
    그리고 과제 공개는... 사측에서 원하지 않는 정도가 아니라 공개하지 마라라고 엄포를 놓았기에 불가합니다.
    몇몇 코드를 보기는 했지만 이제 스스로 해석하고 적용할 수 있는 단계는 지난 것 같군요.

    찬성: 0 | 반대: 0


댓글쓰기
0 / 3000
회원가입

강호정담 게시판
번호 제목 글쓴이 날짜 조회
213420 와~저도 왔어요. +6 Lv.30 외기인 14.02.27 1,808
213419 꽤 많은 출판사들이... +4 Lv.61 광필자 14.02.27 2,432
213418 애니 한국판 더빙 오프닝 엔딩 ost 순위 100 +5 Lv.49 reone 14.02.27 8,509
213417 전술핵과 전략핵의 용도를 자세히 알수 있을까요? +15 Lv.64 하렌티 14.02.27 3,140
213416 추억의 애니 오프닝 top20 +4 Lv.49 reone 14.02.27 1,913
213415 또 책을 잘못 산 건가......... Personacon 엔띠 14.02.27 1,359
213414 참우리나라 전문 분야에 종사하시는 분들을 가만 보면 답... +25 Lv.64 가출마녀 14.02.27 2,532
213413 문피아에는 왜 환불요청이 없을까요? +7 Lv.76 마코슈 14.02.27 2,112
213412 우와~ 울 엄마 진짜 넘 하다. +6 Personacon 백수77 14.02.27 2,136
213411 로그 호라이즌에서 본받을 점 +11 Lv.60 카힌 14.02.27 1,849
213410 진짜 이가 갈린다 갈려........ +1 Personacon 엔띠 14.02.27 1,695
213409 구상중인 판타지의 암울한 도시. +11 Personacon 쉐룬 14.02.27 1,700
213408 전투의 스폐셜리스트인 군인인 계급을 설정한다면 부사관... +12 Lv.64 하렌티 14.02.27 2,767
213407 오늘 올라온 치즈인더트랩, 너무 시원합니다. +2 Personacon 적안왕 14.02.26 1,529
213406 출간되 네이버 웹소설을 봤는데 딱 라이트 노벨급이더군요. +5 Lv.64 하렌티 14.02.26 1,895
213405 박민규님의 죽은 왕녀를 위한 파반느. +6 Lv.12 랍B 14.02.26 1,671
213404 왜 유명 작가분들의 문피아 플래티넘 입성이 드물까요. +9 Lv.49 미르네 14.02.26 3,719
213403 작품 쓰다가 이것저것, 사이버펑크와 스팀펑크. +9 Personacon 쉐룬 14.02.26 1,363
213402 서울협객전과 브레이커의 불살정신 비교해 보다가 답답한 점 Lv.6 트레인하트 14.02.26 1,386
213401 일진이....ㅠ +14 Personacon 밤의꿈 14.02.26 1,120
213400 정령의 날개, 드디어 30만점 넘었습니다. +3 Personacon 적안왕 14.02.26 1,230
213399 이제 스마트폰은 거기서 거기인거 같아요. +10 Lv.25 시우(始友) 14.02.26 1,940
213398 나 삼겹살 먹고 올께요. +6 Lv.8 진짜냐 14.02.26 1,094
213397 컴터 고수분 질문입니다 +31 Lv.1 [탈퇴계정] 14.02.26 1,381
213396 방송 괜찮네요 ㅋㅋㅋ +3 Lv.13 Vermagic 14.02.26 1,036
213395 플래티넘 작품 좀 추천해주세요! +3 Lv.27 크라우젤 14.02.26 1,222
213394 킬러조 패기 +5 Lv.8 진짜냐 14.02.26 1,341
213393 만화_다크메이지 +6 Personacon 엔띠 14.02.26 2,648
213392 올림픽 2관왕 박승희 소속팀이 참 엉망이었군요. +3 Lv.41 가글님 14.02.26 1,219
213391 프리플레이 영상 하나, +5 Lv.18 터베 14.02.26 819

신고 사유를 선택하세요.
장난 또는 허위 신고시 불이익을 받을 수 있으며,
작품 신고의 경우 저작권자에게 익명으로 신고 내용이
전달될 수 있습니다.

신고
@genre @title
> @subject @time