C/C 연습

C 한글 한 글자 합쳐서 이름 만들기 (파일 제어 프로그램)

HicKee 2022. 9. 27. 15:21

-----------------------------
 파일 제어 프로그램 v1.1
-----------------------------
1. 이름 생성하여 파일에 저장하기
2. 파일에서 이름 읽어오기
3. 프로그램 종료
-----------------------------
메뉴 선택 :

조건1) 1차원 배열 초기값
이름의 1번째 --> "김", "박", "이", "최", "장"
이름의 2번째 --> "바", "사", "아", "자", "차"
이름의 3번째 --> "가", "나", "다", "라", "마"

 

조건2) 위의 값을 각각 랜덤하게 발생하도록 하여 50개의 풀네임을 생성하여
배열에 저장.

- 순서1) last에서 랜덤하게 1개의 배열 요소값을 선택
- 순서2) first에서 랜덤하게 1개의 배열 요소값을 선택
- 순서3) mid에서 랜덤하게 1개의 값을 선택
- 순서4) 풀네임을 저장할 배열을 생성
- 순서5) 랜덤하게 생성된 3개의 값들을 합쳐서 하나의 전체 이름으로 생성.

 

조건3) 생성된 풀네임 50개를 파일에 저장.
조건4) 파일에 저장된 이름들을 읽어서 출력할때는 라인별로 출력

 

Code

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>

int main() {

	int choice = 0;

	while (1) {

		printf("----------------------------\n");
		printf("파일 제어 프로그램\n");
		printf("----------------------------\n");
		printf("1. 이름 생성하여 파일에 저장하기\n");
		printf("2. 파일에서 이름 읽어오기\n");
		printf("3. 프로그램 종료\n");
		printf("----------------------------\n");

		printf("메뉴 선택\n");
		scanf("%d", &choice);

		switch (choice) {
		case 1:
			printf("이름을 생성하고 저장합니다.\n");

			setlocale(LC_ALL, "");

			wchar_t first[] = L"김박이최장";
			wchar_t mid[] = L"바사아자차";
			wchar_t last[] = L"가나다라마";

			wchar_t name[50][3];

			for (int i = 0; i < 50; i++) {
				//printf("i 의 값 : %d\n", i);
				for (int j = 0; j < 3; j++) {

					if (j == 0) {
						//printf("j 0의 값 : %d\n", j);
						name[i][0] = first[rand() % 5];
					}
					if (j == 1) {
						//printf("j 1의 값 : %d\n", j);
						name[i][1] = mid[rand() % 5];
					}
					if (j == 2) {
						//printf("j 2의 값 : %d\n", j);
						name[i][2] = last[rand() % 5];
					}
				}
			}

			printf("이름을 생성과 저장을 완료했습니다.\n");

			break;
		case 2:

			printf("이름을 불러옵니다.\n");

			for (int i = 0; i < 50; i++) {

				//printf("i 는 %d\n", i);
				wprintf(L"%d : %c%c%c\n",i+1, name[i][0], name[i][1], name[i][2]);
			}
			break;

		case 3:
			printf("프로그램을 종료합니다.");
			exit(0);
			break;
		}
	}
}


#include <wchar.h>

    wchar_t ,wprintf

#include <locale.h>

    setlocale(LC_ALL, "");

 

char 그리고 wchar_t

 

C char 그리고 wchar_t 문자, 문자열

char #include int main() { char ch = 'ㄱ'; printf("%c\n", ch); return 0; }  출력 ? 한글 한 문자는 2바이트 영어 한 문자는 1바이트 영어는 저장하지만 한글은 저장하지 못한다. 1바이트 크기인 char 로는..

hickee.tistory.com


#include <stdlib.h>

     rand : 난수를 생성한다.

     srand: 난수 생성을 위한 초기값을 설정한다.

#include <time.h>


 srand(time(NULL)); 이 필요한 이유는 컴퓨터 내부에 저장된 난수를 초기화 하기 위해서

'C > C 연습' 카테고리의 다른 글

C 3500원 모두 소진 하는 가지 수  (0) 2022.09.28
C 10개의 소수를 출력  (0) 2022.09.28
C 연산자 03  (0) 2022.09.22
C 연산자 02  (0) 2022.09.21
C 연산자 01  (0) 2022.09.21