C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[12783] [질문] 파일에서 값을 읽어오면 쓰레기 값이...
던켄 [] 898 읽음    2001-11-18 01:52
씨빌더 1주일도 안된 초봅니다.

제가 만든 프로그램은요.
하나의 창에서 버튼을 누르면 다른 또하나의 창이 열리는데요.
프로그램을 종료할 때 두번째 창이 열려있으면 1을 그렇지 않았을 경우에는 0을
텍스트 파일에 저장했습니다.(fprintf를 이용했습니다.)

그리고 나중에 프로그램을 실행시키면 텍스트에 저장된 값을 읽어와서
1이면 두번째 창이 열린 상태로 만들고 0이면 창 하나만 뜨도록 하려고 합니다.

아래는 제가 짠 소스부분입니다.

void __fastcall TMyMain::FormClose(TObject *Sender, TCloseAction &Action)
{
        FILE *out;
        char *MySubData;

        if ((out = fopen("data.ini", "wt")) == NULL)
        {
                fprintf(stderr, "Cannot open input file.\n");
                Close();
        }

        fprintf(out, "%d", MySub->Visible);

        fclose(out);

}

__fastcall TMyMain::TMyMain(TComponent* Owner)
        : TForm(Owner)
{
        char buf[2];
        FILE *in;

        if((in = fopen("data.ini", "rt")) ==NULL)
        {
                fprintf(stderr, "Cannot open input file.\n");
                Close();
        }
        fgets(buf, sizeof(buf), in);
        if(buf=="1")
        {
                MySub->Visible = true;
        }
}

이렇게 했는데 if(buf=="1")에서 buf값이 0\0등 이상하게 나옵니다.
첨에 buf를 선언할 때 buf[1], buf[1024]등으로 선언도 해봤는데
역시 if문 안쪽으로 들어가지는 못하네요.

저장할 때도 마찬가지여서 fputs나 fputc로 집어넣으면 0, 1이 안들어가고 †표시만 생기더군요.
그래서 저장은 fprintf로 어떻게 해결했는데 이제는 읽어오는게 문제네요...

나중엔 이름, 나이, 성별 등도 저장해야되는데 간단한 숫자하나 읽어오는데도 이렇게 힘이드니...
걱정입니다... 부디 고수님들의 많은 조언 부탁드립니다.

+ -

관련 글 리스트
12783 [질문] 파일에서 값을 읽어오면 쓰레기 값이... 던켄 898 2001/11/18
12791     Re:[질문] 파일에서 값을 읽어오면 쓰레기 값이... V6 1401 2001/11/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.