티스토리 뷰


/*
2016-03-07
09:22
파일입출력
main1.c

컴파일이 되는지 안되는지 확인하는 소스
*/

#include<stdio.h>
void smart(int );

int main()
{
    //FILE * fopen(const char * ,const char *);
    smart(printf);
    return 0;

}

void smart (int A)
{

}











/*
2016-03-07
10:12
main2.c
글자를 써보자
*/

#include <stdio.h>

int main()
{
    FILE *fp=fopen("A.txt","w");

    fprintf(fp,"니가보리내가보리");

    fclose(fp);
    return 0;
}









//파일이 생성되는것을 확인할수 있다.


 






절대경로: 드라이브 명을 기준
상대경로: 폴더명을 기준


절대경로, 상대경로 연습

cd






CR: carrage return    :/r
LF: line feed(줄 바꿈)  : /n
EOF: end of file










#include <stdio.h>
int main()
{
FILE *f;

f=fopen("E:\\최기영\\C언어\\20160307-파일입출력\\A.txt","rt");

if (f == NULL) {

     printf("얼씨구. 파일이 안 보이네요\n");

}

return 0;

}










만들었던 .exe 파일을 이름바꾸기로 .bin으로 바꾸고 비주얼스튜디오로 실행


주로 게임 세이브 파일(헥사 에디터)


우리가 만들것은 보여주기만 할것이기때문에 제목은 헥사 뷰어

/*
2016-03-07
15:07
헥사 뷰어를 만들어보자
*/
#include <stdio.h>

void Hexaview();

int main()
{
    Hexaview(NULL,0);

    return 0;
}

void Hexaview(char *cpData, unsigned int uiLen)
{   
    unsigned int uiCnt;

    printf("=====================\n");
    printf("-----Hexa viewer-----\n");
    uiCnt = 0;

    while(160 > uiCnt)//열번 돌면 160
    {
        printf("%p\n",uiCnt);//0을 16진수로 출력
        uiCnt = uiCnt + 16;//원래값에서 16이 증가
    }

}





----주소부분----


/*
2016-03-07
15:07
헥사 뷰어를 만들어보자
*/
#include <stdio.h>

void Hexaview();

int main()
{
    Hexaview(NULL,0);//0번지는 윈도에서 쓰기 때문에 이대로 실행하면 날아감

    return 0;
}

void Hexaview(unsigned char *ucpData, unsigned int uiLen)//uiLen 길이
{   
    unsigned int uiCnt;
    unsigned int ui16Cnt;
    printf("=====================\n");
    printf("-----Hexa viewer-----\n");
    uiCnt = 0;

    while(160 > uiCnt)//열번 돌면 160
    {
        printf("%p\n",uiCnt);//0을 16진수로 출력       
        ui16Cnt = 0;

        while(16 > ui16Cnt)//0~15까지
        {
            printf("%02X ",*ucpData);//02X 두자리씩 채워넣음
            ui16Cnt = ui16Cnt + 1;

        }
        printf("%p\n",ui16Cnt);
        uiCnt = uiCnt + 16;//원래값에서 16이 증가
        ui16Cnt = ui16Cnt + 16;
    }
    printf("\n");

}






윈도가 프로그램을 날려버리기 때문에 버퍼를 사용해야함



/*
2016-03-07
15:07
헥사 뷰어를 만들어보자
*/
#include <stdio.h>

void Hexaview();

int main()
{
    unsigned char ucBuff[]="1234567890ABCDEF";
    Hexaview(ucBuff,0);//버퍼에 저장

    return 0;
}

void Hexaview(unsigned char *ucpData, unsigned int uiLen)//uiLen 길이
{   
    unsigned int uiCnt;
    unsigned int ui16Cnt;
    printf("=====================\n");
    printf("-----Hexa viewer-----\n");
    uiCnt = 0;

    while(160 > uiCnt)//열번 돌면 160
    {
        printf("%p ",uiCnt);//0을 16진수로 출력       
        ui16Cnt = 0;

        while(16 > ui16Cnt)//0~15까지
        {
            printf("%02X ",*ucpData);//02X 두자리씩 채워넣음
            ui16Cnt = ui16Cnt + 1;

        }
        printf("\n");
        uiCnt = uiCnt + 16;//원래값에서 16이 증가
        ui16Cnt = ui16Cnt + 16;

    }


}





/*
2016-03-07
15:07
헥사 뷰어를 만들어보자
*/
#include <stdio.h>

void Hexaview();

int main()
{
    unsigned char ucBuff[]="1234567890ABCDEF";
    Hexaview(ucBuff,0);//ucpData를 버퍼에 저장

    return 0;
}

void Hexaview(unsigned char *ucpData, unsigned int uiLen)//uiLen 길이
{   
    unsigned int uiCnt;
    unsigned int ui16Cnt;
    printf("=====================\n");
    printf("-----Hexa viewer-----\n");
    uiCnt = 0;

    while(160 > uiCnt)//열번 돌면 160
    {
        printf("%p ",uiCnt);//0을 16진수로 출력       
        ui16Cnt = 0;

        while(16 > ui16Cnt)//0~15까지
        {
            printf("%02X ",*ucpData);//02X 두자리씩 채워넣음
            ui16Cnt = ui16Cnt + 1;
            ucpData = ucpData + 1;

        }
        printf("\n");
        uiCnt = uiCnt + 16;//원래값에서 16이 증가
        ui16Cnt = ui16Cnt + 16;

    }


}




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함