본문 바로가기
프로그래밍언어/C언어[초급]

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

by about_IT 2025. 4. 20.

이제 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

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