PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2008/11/29 18:03:50
Name 루시리스
Subject C++ 파일 입출력 관련 질문입니다.
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
        ifstream fin("out.txt", ios_base::in);
        ofstream fout("out1.txt", ios_base::out | ios::trunc);

        char ch=fin.get();

        fin.seekg(0, ios_base::end);                //입력 포인터를 파일 끝으로 이동한다.

        int k=fin.tellg();                //위치를 읽어온다.
        
        for(int i=-1; i>=-k; i--){
                fin.seekg(i, ios_base::end);
                fin.get(ch);
                fout<<ch;
        }

        fin.close();
        fout.close();

        return 0;
}

문제가 out.txt 파일에
abcde
fghij
kim

이렇게 저장 되어 있으면

out1.txt 파일에는
mik
jihgf
edcba

이렇게 마지막문자로부터 하나씩 거꾸로 출력을 해야 하는데요.

제가 위에 코드처럼 작성하고 나니

out1.txt 파일에
mik

jihgf

edcba

이렇게 한줄에 한 문자열이 출력된후 엔터가 두번이 입력되어있네요..

어디를 어떻게 고쳐야할까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
Magic_'Love'
08/11/29 21:27
수정 아이콘
int sign = 0;

for(int i=-1; i>=-k; i--)

fin.seekg(i, ios_base::end);
fin.get(ch);
if(ch == '\n')
if(sign == 1)
{
sign = 0;
continue;

else
sign = 1;
fout<<ch;
}

for문을 이렇게 수정해주시면 바뀝니다.

근데 이건 근본적인 해결책이 아니라...꼼수를 쓴거죠..

개행문자가 2개씩 입력되는게 문제인데... 왜 2개가 입력되는지 잘 모르겠네요..;;
그걸 해결해야 하는데...

책도 보고 했는데 잘 모르겠네요...
루시리스
08/11/29 21:57
수정 아이콘
매직러브님//다른곳에도 질문을 올려봤는데

파일에 정보를 저장할때, 라인 개행정보로 \r\n 값이 들어가는데 이 값도 역순이 취해져서
그런것 같습니다. 이 값이 \n\r 로 역순이 취해지면 노트패드와 같은 프로그램로 확인하면
두줄로 표시되어서 나올겁니다.

이 문제를 해결하시려면 \r 값이 나왔을때 예외처리를 하셔서 \r\n 값은 역순이 취해지지 않도록
수정하셔야 할것 같습니다. ^^;;

이렇게 답변이 올라져와있더라구요.. 근데 어떻게 예외처리를 해야할지 몰라서;;

아무튼 답변 감사드립니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
45877 와우를 시작해보려고 하는데 질문입니다. [21] 레몬드림♪2692 08/11/29 2692
45876 어떻게하면 휴대폰을 좋게 살수 있을까요? [4] 가을의전설1808 08/11/29 1808
45875 아버지께 안마기를 사드리려고 합니다. Doraeomn2115 08/11/29 2115
45874 컴퓨터가 이상해요 도와주세요 [1] habsburg1721 08/11/29 1721
45873 겨울에 실내에서 놀만한곳.(수정합니다 한번씩만읽고 추천들좀 부탁드려요) [6] 삭제됨4192 08/11/29 4192
45872 토렌트 관련 질문입니다... 구름동동~2344 08/11/29 2344
45871 컴퓨터 메모리 업그레이드 질문입니다. [2] 허느님맙소사1515 08/11/29 1515
45870 C++ 파일 입출력 관련 질문입니다. [2] 루시리스3136 08/11/29 3136
45869 편의점이나 피시방알바를 하고싶은데 90년생은 안되더군요 [8] korea1934 08/11/29 1934
45868 핸드폰 외장메모리 관련 질문입니다. [1] 어흥 어흥1796 08/11/29 1796
45867 미드 스크립트 구할수 있는 사이트 좀 알려주시어요~ [2] 초록추억3054 08/11/29 3054
45866 로얄로더의 계보가 궁금합니다... [4] JesteR[GG]1932 08/11/29 1932
45863 공기업 선진화에 관하여...... [1] HL햇빛1520 08/11/29 1520
45862 만화 질문입니다. [2] 비야레알1292 08/11/29 1292
45861 팝업창을 닫으면 원래 있던 인터넷창이 다 꺼집니다.. [1] MayBee2006 08/11/29 2006
45860 온겜 스타리그 예선 언제 열리나요? [1] legend1910 08/11/29 1910
45859 브라질 국대 유머 찾습니다. [2] 임요환의 DVD2010 08/11/29 2010
45858 출판사 질문입니다.. 꼭 답변해주세요 [2] bachistar1605 08/11/29 1605
45855 스타 패치 질문.. [1] 비야레알1619 08/11/29 1619
45854 장례식장에 출입해서 사진을 찍을 수 있나요? [3] 이재열2192 08/11/29 2192
45853 공익근무지에 대한 질문. [9] on&on2443 08/11/29 2443
45852 좀 무식한 질문입니다 (음악관련) [1] growinow2135 08/11/29 2135
45851 이게 무좀인가요? [6] 잔다르크2137 08/11/29 2137
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로