
컴퓨터에 편지를 쓰고 읽는 상상을 해 봐요!
우리가 친구에게 편지를 쓰고, 다시 읽는 것처럼 컴퓨터도 파일이라는 곳에 글자를 저장하고 다시 읽을 수 있어요. 이것을 파일 입출력이라고 해요.
파일을 열고 닫는 방법
컴퓨터에서 파일을 열고 닫는 것은 서랍을 열고 닫는 것과 비슷해요.
- 파일 열기: 컴퓨터에 있는 파일이라는 서랍을 열어서 글을 쓰거나 읽을 준비를 하는 거예요.
- 파일 닫기: 사용을 마친 파일 서랍을 닫아서 다른 사람이 실수로 내용을 바꾸지 못하게 하는 거예요.
#include <stdio.h>
int main() {
FILE *fs; // 파일 서랍을 가리키는 손가락
// 파일 서랍 열기 (쓰기 모드)
fs = fopen("New.txt", "w");
if (fs == NULL) {
printf("파일 열기 실패!\n");
return 1;
}
// 파일에 "Hello, World!" 쓰기
fprintf(fs, "Hello, World!\n");
// 파일 서랍 닫기
fclose(fs);
return 0;
}
파일 읽기
파일에서 글자를 읽어오는 것은 책에서 글자를 읽는 것과 같아요.
#include <stdio.h>
int main() {
FILE *fs;
char ch;
fs = fopen("New.txt", "r");
if (fs == NULL) {
printf("파일 열기 실패!\n");
return 1;
}
fscanf(fs, "%c", &ch); // 파일에서 한 글자 읽어서 문자 변수에 저장
printf("읽은 글자: %c\n", 문자);
fclose(fs);
return 0;
}
더 많은 것들
- 다른 종류의 파일: 그림, 음악 파일도 컴퓨터에서는 파일로 저장돼요.
- 더 많은 명령: 파일에서 여러 줄을 읽거나, 숫자를 저장하고 불러오는 등 더 많은 것을 할 수 있어요.
중요한 것!
- 파일을 열고 닫는 것을 잊지 마세요: 파일 서랍을 열고 닫는 것을 잊으면 안 돼요!
- 파일 이름을 잘못 쓰면 안 돼요: 파일 이름을 잘못 쓰면 원하는 파일을 찾을 수 없어요.
실전예제
C 언어로 파일을 읽고 쓰는 메뉴를 제공하는 간단한 프로그램입니다. 사용자는 메뉴에서 선택하여 파일에 내용을 추가하거나, 파일의 내용을 읽을 수 있습니다.
C 프로그램 코드
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024 //한 줄에 읽을 수 있는 최대 문자 수
int main()
{
char filename[100];
char line[MAX_LINE];
int choice;
while(1){
printf("--- 메 뉴---- \n");
printf("1. 새파일 만들 \n");
printf("2. 읽어오기 \n");
printf("3. 종료 \n");
printf("------------- \n");
printf("선택하세요:");
scanf("%d", &choice);
switch (choice){
case 1:
printf("새 파일 이름: ");
scanf("%s", filename);
FILE *fp = fopen(filename, "w");
if (fp == NULL) {
printf("파일 생성 실패\n");
} else {
fprintf(fp, "Hello, World!\n");
printf("새 파일 생성 완료\n");
fclose(fp);
}
break;
case 2:
printf("읽을 파일 이름: ");
scanf("%s", filename);
fp = fopen(filename, "r");
if (fp == NULL) {
printf("파일 읽기 실패\n");
} else {
while (fgets(line, MAX_LINE, fp) != NULL) {
printf("%s", line);
}
fclose(fp);
}
break;
case 3:
printf("프로그램 종료\n");
return 0;
default:
printf("잘못된 선택입니다.\n");
}
}
return 0;
}
프로그램 설명
- 메뉴 제공: 사용자가 선택할 수 있는 메뉴를 제공합니다.
- 1번: 파일에 내용을 추가합니다.
- 2번: 파일의 내용을 읽습니다.
- 3번: 프로그램을 종료합니다.
- 파일에 내용 추가:
- writeToFile() 함수에서 파일을 추가 모드("a")로 열고, 사용자가 입력한 내용을 파일에 추가합니다. "종료"라는 단어를 입력하면 내용을 추가하는 과정을 종료합니다.
- 파일 내용 읽기:
- readFromFile() 함수에서 파일을 읽기 모드("r")로 열고, 파일의 내용을 한 줄씩 읽어서 출력합니다.
- 입력 처리:
- getchar()를 사용하여 입력 버퍼를 비워줍니다. 이는 scanf() 다음에 발생할 수 있는 버퍼 문제를 방지합니다
사용 방법
- 프로그램을 컴파일하고 실행합니다.
- 메뉴에서 원하는 옵션을 선택합니다.
- 내용을 추가하고 싶다면 1번을 선택하고, 종료하려면 "종료"를 입력합니다.
- 파일의 내용을 보고 싶으면 2번을 선택합니다.
- 프로그램을 종료하고 싶으면 3번을 선택합니다.
이 프로그램을 통해 간단한 파일 입출력을 실습할 수 있습니다.
C 언어로 자판기 프로그램
-프로그램은 사용자가 음료수를 선택하고, 가격을 계산하여 잔돈을 반환하는 기능을 포함합니다.
#include <stdio.h>
int main()
{
int choice;
char cho[20];
int money, change, price;
printf("=== 자판기 === \n");
printf("1. 콜라 - 1000원 \n");
printf("2. 사이다 - 1200원\n");
printf("3. 커피 - 1500원 \n");
printf("4. 종료 \n");
printf("음료수를 선택하세요 (1-4): ");
scanf("%d", &choice);
printf("금액을 입력하세요: ");
scanf(" %d", &money);
switch(choice){
case 1:
price = money - 1000;
strcpy(cho, "콜라");
break;
case 2:
price = money - 1200;
strcpy(cho, "사이다");
break;
case 3:
price = money - 1500;
strcpy(cho, "커피");;
break;
case 4:
printf("프로그램을 종료합니다.\n");
return 0;
default:
printf("메뉴에 없습니다.\n");
break;
}
printf("선택한 음료수: %s\n", cho);
printf("잔돈: %d원\n", price);
printf("구매해 주셔서 감사합니다!\n");
return 0;
}
C 언어로 간단한 계산기 프로그램
- 이 프로그램은 기본적인 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행합니다.
#include <stdio.h>
int main() {
char operator;
double num1, num2, result;
printf("계산기를 시작합니다.\n");
printf("첫 번째 숫자를 입력하세요: ");
scanf("%lf", &num1);
printf("연산자를 입력하세요 (+, -, *, /): ");
scanf(" %c", &operator); // 공백을 넣어 이전 입력의 개행 문자를 무시
printf("두 번째 숫자를 입력하세요: ");
scanf("%lf", &num2);
switch (operator) {
case '+':
result = num1 + num2;
printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
break;
case '-':
result = num1 - num2;
printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
break;
case '*':
result = num1 * num2;
printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
} else {
printf("오류: 0으로 나눌 수 없습니다.\n");
}
break;
default:
printf("오류: 잘못된 연산자입니다.\n");
break;
}
return 0;
}'C_language' 카테고리의 다른 글
| 비주얼 스튜디오 2026 단축기 (0) | 2026.01.24 |
|---|---|
| C 언어 기초 및 활용 강의 계획서 (0) | 2026.01.24 |
| C언어 구조체 : 다양한 정보를 한꺼번에 관리하는 방법 (1) | 2024.08.27 |
| c언어 포인터 왜? 쓸까? (0) | 2024.08.27 |
| c 언어 포인터 (1) | 2024.08.27 |