티스토리 뷰
/*
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;
}
}
|