Game !

C (12)

  1. 2022.11.12 [C] C 스타일 파일입출력

    C 스타일 : 자료형 하나씩 저정해도 되지만 보통 구조체로 저장한다. > 한 번에 데이터를 모아서 저장할 수 있어서 C 스타일 파일 입출력을 사용하려면 아래 헤더파일을 추가해야한다 1. 파일에 쓰기 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 31 32 33 34 35 #include using namespace std; #define MAX_NAME_LENGTH = 32; struct SAVE_DATA { char arr[MAX_NAME_LENGTH]; int iHp; } void SaveData() { FILE* pWriteFile = nullptr; // 파일 열기 // b : 바이너리 fopen_s..

  2. 2022.10.23 [C] 문자열 상수

    char *test = "abcdef"; 와 char test[] = "abcdef";의 차이점 두 가지의 차이를 이야기 하기에 앞서서 "abcdef"에 대해 짚고 넘어갑시다. "abcdef"란 코드는 컴퓨터가 프로그램을 메모리에 로드할 때 읽기 전용 메모리에 로드되는 문자열 상수입니다. 문자열 상수의 주소란 말이죠. 참고로 읽기 전용 메모리에는 프로그램 코드 라던가 상수가 로드 됩니다. 그럼 돌아와서 문자열 상수 주소를 char *test인 포인터에 넣느냐 아니면 char test[]인 배열에 넣느냐가 차이점 이군요. 둘의 차이는 다음과 같습니다. 1. char *test = "abcdef"; - 포인터에 문자열 상수를 할당합니다. 따라서 문자열을 참조 할 수는 있지만 값을 바꾸지는 못합니다. 문자열이..

  3. 2015.09.25 [C] 디버깅 중 출력화면에 변수 출력하기

    시간과 같은 변수들은 디버깅할때 유의할 점입니다디버깅시 브레이크를 걸었다 하더라도 시간은 계속 흐르니까요 그래서 시간을 알고 싶을때에는 디버깅 중에 시간을 출력하여 확인할 필요가 있습니다. 디버깅에 시간을 출력하기 위해 필요한 함수 sprintf(_s)OutputDebugStringA sprintf 함수 헤더파일#include 원형int sprintf(char* str, const char* format, .....) 사용법매개변수는 차례대로1. 문자열을 저장할 char*형 변수2. " 문자열 "3. , ... 부분은 문자열에 변수가 들어갈 수 있음 문자열을 저장할 변수는 문자열보다 커야하고문자열 마지막에 NULL 문자를 생각하여 항상 문자열보다 1칸 커야한다 => char buff[100]; sprin..

  4. 2015.09.11 [C] 2차원 배열 함수의 매개변수로 보내는 방법

    많이 사용하는 2차원 배열을 함수로 보내는 방법 1234567891011121314151617#include void prn(int a[][4], int size); void main(){ int arr[3][4]; prn(arr, sizeof(arr)/sizeof(int));} void prn(int a[][4], int size){ printf("%d \n", a[1][1]);}\cs 3x4 크기의 배열을 arr[3][4] 로 선언하였습니다 13열의 void prn(int a[][4], int size) 이 부분을 보시면 a[][4]로 적혀있습니다 즉, 함수로 이동시킬때에는 2번째 배열크기는 변경하실 수 없습니다앞의 [3] 부분은 변경할 수 있습니다 왜냐하면 arr[3][4] 의 의미는 3개의 배열이..

  5. 2015.05.29 문자열을 입력받고, 문자의 빈도수 계산하여 출력하기

    문자열을 입력받고, 문자의 빈도수를 계산하여 출력해보자! 1. 문자열을 입력받는다 (스페이스바포함) 2. a~z 까지 문자를 저장한다3. 1개씩 문자를 비교하여 문자와 같아면, 값을 1씩 증가시킨다 12345678910111213141516171819202122232425262728293031323334#include #include void main(){ char str[100]; //입력받는 문자열 char alpa[30]; //문자 a~z 저장 int temp[30] = {0, }; //빈도수 저장 int!! int count = 0; char* Return; for(int i=0; i

  6. 2015.05.29 문자열의 숫자을 더하고 출력하기

    숫자 문자열을 진짜 숫자(상수)로 바꿔서 일의자리씩 더하고 출력하여보자 ex) 23sdgds1 을 입력한다면 2 + 3+ 1 = 6 을 출력해야한다. 1. 문자열을 gets 로 입력받는다.2. 숫자 문자열일 경우 상수로 바꿔서 int형 변수에 저장한다.3. int형 총합 변수를 출력한다. 123456789101112131415161718192021#include #include #include void main(){ char str[20]; // int result = 0; // printf("문자열 입력 : "); gets(str); for(int i=0; i - 48 의 의미 result 에는 숫자문자를 진짜 숫자로 바꿔서 저장해야합니다. 아스키코드 표를 참조하시면,문자 숫자는 48~ 57 그래서 '..

  7. 2015.05.29 단어를 입력받고, 사전 순서대로 출력하기

    사용자로부터 10개 이하의 숫자를 입력받고, 사전 순서대로 출력하여 보자. 1. int n 으로 입력할 단어의 개수를 받는다. 2. 단어를 n 수 만큼 입력받는다. 3. Sort 함수를 만들어 정렬을 한 다음, 출력한다. 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #include void main() { int n; // /* 왜 2차원 배열인지는 아래에 */ char str[10][20]; printf("입력할 단어 개수?(최대10개) : "); scanf_s("%d", n); for(int i=0; i s..

  8. 2015.05.29 다양한 종류의 포인터 정리

    포인터 : 주소값을 가리키는 변수 보통 4바이트, 주소값 1개를 가리킬 수 있다. 같은 자료형의 주소값을 가질 수 있다 cf. 배열은 포인터다. ex : int a = 5; int* ptr = &a; => int* ptr == int 형 주소값을 가리킬 수 있는 포인터 *ptr 더블 포인터 : 포인터를 가리키는 포인터 ex : int a = 5; int* ptr = &a; int** pptr = &ptr; => int** pptr == int* 형 주소값을 가리킬 수 있는 이중포인터 **ptr 포인터 배열 : 자료형이 포인터인 배열 ex : int* ptr[10]; => 10개의 방이 있는데, 이 각 원소들은 포인터형이므로 주소값을 가질 수 있다 배열 포인터 : 2차원 배열일때 쓰이는 경우가 많으며 1개..

  9. 2015.04.24 2차원 배열 동적할당 & 해제

    보호되어 있는 글입니다.

  10. 2015.04.20 [C 기초] 자리맞춰서 출력하기 2

    printf 를 사용하였을 때, %d 등 출력방식에 대하여 자릿수를 맞춰서 출력하여봅시다 1 2 3 4 5 6 7 8 9 10 11 12 13 #include void main() { int num = 5; printf("%d \n", num); printf("%2d \n", num); printf("%02d \n", num); return; } cs 출력화면 : 5 5 05 정수형을 기본으로 하였습니다 가장 많이쓰는 %d 는 num에 저장된 숫자 그대로 출력하는 것! %2d 에 있는 2 의 의미는 빈칸 2개를 의미! %02d 에 있는 02 는, %2d 에서 앞에 0이 추가된 것으로 빈칸을 2개로 하되, 그 빈칸에는 0을 넣겠다는 의미! 추가로, %.2f : 소수점 이하 2자리 까지 출력하겠다는 의미!

1 2