|
씨빌더 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로 어떻게 해결했는데 이제는 읽어오는게 문제네요...
나중엔 이름, 나이, 성별 등도 저장해야되는데 간단한 숫자하나 읽어오는데도 이렇게 힘이드니...
걱정입니다... 부디 고수님들의 많은 조언 부탁드립니다.
|