이제 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
이름, 나이, 주소 등 서로 다른 데이터를 하나의 단위로 묶어 관리할 수 있기 때문입니다.
'프로그래밍언어 > C언어[초급]' 카테고리의 다른 글
[C언어][초급] Chapter66. 최종 복습 – C언어 기초 정리와 실전 팁 (6) | 2025.04.20 |
---|---|
[C언어][초급] Chapter64. 디버깅 방법 – C언어 오류 찾고 고치는 기초 요령 (0) | 2025.04.20 |
[C언어][초급] Chapter63. 주요 표준 라이브러리 함수 – 꼭 알아야 할 C 기본 함수들 (0) | 2025.04.20 |
[C언어][초급] Chapter62. 표준 헤더파일의 종류 – 자주 사용하는 C 표준 라이브러리 (0) | 2025.04.20 |
[C언어][초급] Chapter61. 파일 입출력 – fprintf, fscanf로 파일에 데이터 쓰고 읽기 (1) | 2025.04.19 |