삽질의 현장/- C 41

곱씹어보자 C!_#031_삽잡이의 파일 입출력을 사용한 저장 및 복원 예제

안녕하세요 삽잡이입니다.. 이번 글은 파일 입출력에 관한 실습 예제 입니다. 역시 코딩은 눈으로만 보는 것이 아니라 직접해봐야한다는... 인터넷의 많은 도움과 짜집기의 힘을 얻어 만든 이 코드는 문자열 입력, 출력, 검색, 삭제, 저장, 복원의 기능을 가지고 있습니다... 다시한번 인터넷님에게 감사드리며... 많은 정보들을 남겨주신 모든 분들에게 감사드리며... 푸하하... 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798..

곱씹어보자 C!_#030_삽잡이의 지금까지 C언어 마지막(?) 예제

안녕하세요 삽잡이 입니다~오늘부로 C언어는 기약없는 보류를~ ㅎㅎㅎ 마지막 예제입니다... 문자열을 'exit' 문자를 입력 받기 전까지 입력받고,그 문자열의 아스키 코드 및, 대문자-> 소문자 변환 하는 예제 코드입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#pragma warning (disable:4996)#include #include #include int Count = 0;char* InputString(){ char buf[500]; char* s; printf("문자열 입력 : "); gets(buf)..

곱씹어보자 C!_#029_삽잡이의 두서없이 막말하는 파일 입출력 (3)

안녕하세요 삽잡이입니다~ 12345678910 void main(){ FILE* fp = NULL; char c = '\n'; printf("%c %d \n", c, c);} cs char 변수에 New Line 즉 '\n' 을 저장하고 각각 %c, %d 값으로 출력하는 코드입니다. 결과적으로 %c 일경우 \n의 역할을, %d일 경우 10이 출력되는 것을 확인할 수 있습니다. OS 마다 화면, 파일상 다루는 동작들이 다르기 때문에 주의해야할 상항들이 있습니다. 아무튼... 즉, \n의 아스키 코드 값은 10이라는 것입니다. 지금부터 간단하게 용어를 설명하고 시작하겠습니다... 한줄 내리는 것을 New Line이라고 부릅니다. 그리고 앞줄로 당기는 것을 Carriage Return 이라고 부르죠... 두 ..

곱씹어보자 C!_#028_삽잡이의 두서없이 막말하는 파일 입출력 (2)

파일 입출력을 할 때에는 2가지의 파일 입출력을 제공합니다. 1. Text File 입출력 이때 C언어에서 많이 사용하는 함수는 fprintf(), fscanf() 입니다. 2. Binary File 입출력 fwrite(), fread() 함수를 사용하는데요, fwrite() 함수 같은 경우, 바이너리로 파일을 출력하는 기능을 가지고 있으며, fread는 반대로 복원하고자 할 때 사용합니다. 바이너리 0과 1의 집합으로 된 기계어 파일... 아시죠? 하하.. 2번, Binary File 입출력의 경우에는 사람이 읽기위한 목적이 아닌, 데이터를 보관하고 다음에 실행할 때 원상태로 복구하기 위해 사용합니다. 음... 다시 말씀드리자면, Binary 입출력은 쓰는 것을 목적으로 하지 않는 다는 것입니다. 읽어..

곱씹어보자 C!_#027_삽잡이의 두서없이 막말하는 파일 입출력 (1)

달려라 달려 삽잡이~정줄 놓은 삽잡이~ 프로그램의 인스턴스를 프로세스라고 합니다.프로그램은 죽어있는 껍데기라면... 프로세스는 살아있는 실제라고 할까요?즉, 메모리상에 떠 있는 프로그램을 프로세스라고 부릅니다.여기에는 치명적인 단점이 있습니다...바로 전원이 꺼지면 다 날라간다는... 프로세스에는 명령어와 데이터들로 되어있습니다...프로세스에 기록되어 있는 데이터들은 사용자 실행시간에 만들어지는데...이게 전부 프로그램에 남아있지는 않습니다. 원칙적으로 남아있던 데이터들은 남아 있겠지만, 프로그램에는 명령어와 데이터 셋이 있겠죠... 그렇다면 전원이 없더라도 데이터가 유지되도록 할 수는 없는 것인가요?아닙니다... 우리는 한글, 워드.. ppt 등등등 밤새 작성하고 저장하지 날리는 일이 없지는 않지만 아..

곱씹어보자 C!_#026_삽잡이의 두서없이 막말하는 전처리기

삽잡이는 계속 달립니다이번에는 전처리기~! 우리는 지금까지 C언어에 대해서 공부하고 있습니다...C언어는 컴퓨터보다 사람에게 더 가까운 Text Language라고 하여Text Code라고 부릅니다. C언어 외 모든 프로그래밍 언어는 사람이 이해하고 작성한 언어이지요...컴퓨터가 이해하기에는 무리가 따릅니다.그래서 컴파일러라는 친구를 통해 기계어로 번역을 하게 되죠...기계어는 0과 1의 집합으로 Binary Code라고 부릅니다... 아무튼... 우리는 사람이 이해할 수 있는 Text Code를 작성하게 됩니다.컴퓨터가 이해할 수 있는 기계어를 만들기 위해 컴파일러라는 친구가 컴파일작업을 통해Binary Code를 만들어준다 이거죠.. 컴파일 오류는 뭘 말하는 것일까요?컴파일러는 사람과 컴퓨터사이에 약..

곱씹어보자 C!_#025_삽잡이의 두서없이 막말하는 함수 포인터

달립니다 달립시다~~ 삽잡이는 달립니다~~ 이번 시간에는 함수포인터로 C부려봅시다~~ 함수 포인터... 많이 사용됩니다. 크게 사용하는 분야를 2개로 나눌 수 있습니다. 첫번째, 프로그램 기능의 유연성을 키우고자 할때, 두번재, Callback 함수를 만들어 낼 때 입니다. 첫번째에 대한 설명을 드리자면, 함수포인터 하나만 가지고 있으면 함수의 주소 즉, 이름을 대입하여 많은 곳에 사용할 수 있게 됩니다. 즉, 어떨 때는 A함수, 어떨 때는 B함수 코드 한줄 안고치고도 기능이 바뀔 수 있죠... 이게 바로 유연성을 키운다고 말하는 것입니다. 단, 같은 시그니처를 가지고 있을 때 사용할 수 있겠죠... 이렇게 사용할 수 있습니다... 123456789101112131415161718192021222324#..

곱씹어보자 C!_#024_삽잡이의 두서없이 막말하는 void*

오직 내 길만 걸어간다.뛰아갈 때도 있다... 쉬다 갈 때도 있다...안녕하십니까 삽잡이입니다. 푸하하 오늘은 void* 에 대한 C부리기시작합니다~ malloc은 동적 메모리를 할당할 때 사용하죠.. 이때 반환형이 void* 인것을 주목해야합니다..포인터는 주소를 가리키죠? 그런데 말입니다. 딱 고정되어있는 주소형을 받는 포인터가 아니어야 할 때가 있습니다... 컴퓨터에서는 자료를 다룰 일이 많습니다... 하나하나 다 정성스레 다뤄줘야하는데... 이를 두리 뭉실하게 '추상적'으로 다룸으로 일명 유도리있게 다룬다면,코드의 양이 줄면서도, 수정할 필요가 적어질 수 있습니다. 즉, 뭔말이냐하면어떤 데이터들을 다룰 때 구체적인 하나하나를 다루는 것 보다두루뭉실하게 모든 것을 다루는 것이 확장성도 좋고 수정하기..

곱씹어보자 C!_#023_삽잡이의 두서없이 막말하는 지금까지 응용 예제

안녕하세요 삽잡이 입니다!오늘은 지금까지 배워온 모든 것들을 응요해서예제를 만들어봤습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132#pragma warning(disable:4996)#include #include #include #in..

곱씹어보자 C!_#022_삽잡이의 두서없이 막말하는 구조체 예시_둘

안녕하세요 삽잡이입니다.구조체 예시 두번째 시간입니다... 지난시간에 이어 예시를 살펴보는데 어때요 재미있죠...아하하하하하하하하 정줄 놓지 않았습니다.... 죄송합니다... C부려보도록 하겠습니다... 푸하하 이번시간도 마찬가지로 지난 시간부터 주구장창 사용하는요놈... 를 꾸준히 사용하며 설명을 진행해보도록 하겠습니다.안녕~~~ 123456typedef struct _Point { int x; int y;}Point; cs 구조체에서는 오직 딱 하나 '대입' 만이 가능합니다.다른거 안되요... 같은 타입인 경우 대입 즉, 복사가 가능합니다. 이를 메모리 덤프라고도 하죠...이렇게 가능합니다... 1234567891011121314151617void PrintPoint(Point ps[]){ print..