프로그래밍언어/C언어[초급]

[C언어][초급] Chapter65. 간단한 프로젝트 – 지금까지 배운 걸로 미니 프로그램 만들기

about_IT 2025. 4. 20. 00:40

이제 C언어의 기본 문법과 주요 개념을 배웠다면, 실제로 작은 프로그램을 만들어 보며 정리해보는 것이 좋습니다.

이번 챕터에서는 지금까지 배운 내용을 바탕으로 간단한 프로젝트 예시를 하나 만들어보고, 실습 문제도 함께 풀어보겠습니다.


● 프로젝트 주제: 간단한 회원 정보 저장 프로그램

기능 설명:

  • 사용자 이름, 나이, 주소 입력
  • 입력값을 구조체에 저장
  • 파일로 저장하고, 다시 불러와 출력

● 사용할 개념

  • 구조체
  • 파일 입출력 (fopen, fprintf, fscanf)
  • 문자열 함수 (strcpy 등)
  • 조건문과 반복문

● 예시 코드

#include <stdio.h>
#include <string.h>

struct Member {
    char name[30];
    int age;
    char address[100];
};

int main() {
    struct Member m;
    FILE *fp;

    // 정보 입력
    printf("이름 입력: ");
    scanf("%s", m.name);
    printf("나이 입력: ");
    scanf("%d", &m.age);
    printf("주소 입력: ");
    scanf(" %[^\n]", m.address); // 공백 포함 입력

    // 파일 저장
    fp = fopen("member.txt", "w");
    fprintf(fp, "%s %d %s", m.name, m.age, m.address);
    fclose(fp);

    // 파일 읽기
    struct Member temp;
    fp = fopen("member.txt", "r");
    fscanf(fp, "%s %d %[^\n]", temp.name, &temp.age, temp.address);
    fclose(fp);

    printf("\n--- 저장된 정보 ---\n");
    printf("이름: %s\n나이: %d\n주소: %s\n", temp.name, temp.age, temp.address);

    return 0;
}

이 프로그램은 사용자의 정보를 입력받고, 파일로 저장한 뒤 다시 불러와 출력합니다.
입출력, 구조체, 문자열 처리 등 다양한 요소를 자연스럽게 복습할 수 있습니다.


● 실습 문제

문제 1

구조체를 사용하여 이름과 나이를 저장하고 출력하는 코드를 작성하세요.

 

문제 2

fopen을 사용하여 "user.txt" 파일을 쓰기 모드로 열고, 이름을 저장하는 코드를 작성하세요.

 

문제 3

파일에서 이름과 나이를 읽어와 출력하는 코드를 작성하세요.

 

문제 4

입력받은 문자열에 공백이 포함될 수 있을 때 scanf를 어떻게 사용해야 하나요?

 

문제 5

이 프로그램에서 구조체가 필요한 이유를 설명해보세요.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

▶ 정답 확인하기

정답 1

struct User {
    char name[30];
    int age;
};
struct User u = {"민호", 28};
printf("%s %d\n", u.name, u.age);

 

정답 2

FILE *fp = fopen("user.txt", "w");
fprintf(fp, "홍길동");
fclose(fp);

 

정답 3

char name[30];
int age;
FILE *fp = fopen("user.txt", "r");
fscanf(fp, "%s %d", name, &age);
printf("%s %d\n", name, age);
fclose(fp);

 

정답 4

scanf(" %[^\n]") 형식으로 사용하면 공백을 포함한 문자열 입력이 가능합니다.

 

정답 5

이름, 나이, 주소 등 서로 다른 데이터를 하나의 단위로 묶어 관리할 수 있기 때문입니다.