728x90
반응형
C 프로그램 입/출력 및 파일 입출력
C 프로그래밍에서 데이터의 입출력은 프로그램이 사용자와 상호 작용하거나 데이터를 처리하는 데 필수적인 요소입니다. 본 포스팅에서는 scanf
와 printf
를 이용한 기본적인 콘솔 입출력과 파일 입출력을 다룹니다. 또한 각 주제별로 예제를 포함하여 쉽게 이해할 수 있도록 설명하겠습니다.
1. 콘솔 입출력: scanf
와 printf
printf
: 출력 함수
printf
는 텍스트와 변수 값을 화면에 출력하는 함수입니다. printf
함수의 형식은 다음과 같습니다:
#include <stdio.h>
int main() {
printf("문자열 출력\n");
return 0;
}
서식 지정자
%d
: 정수%f
: 부동 소수점%c
: 단일 문자%s
: 문자열
예제 1: 다양한 데이터 출력
#include <stdio.h>
int main() {
int num = 10;
float pi = 3.14;
char ch = 'A';
char str[] = "Hello, World!";
printf("정수: %d\n", num);
printf("부동 소수점: %.2f\n", pi);
printf("문자: %c\n", ch);
printf("문자열: %s\n", str);
return 0;
}
결과
정수: 10
부동 소수점: 3.14
문자: A
문자열: Hello, World!
scanf
: 입력 함수
scanf
는 사용자로부터 데이터를 입력받는 함수입니다. scanf
는 입력받을 데이터의 형식과 저장할 변수의 주소를 필요로 합니다.
기본 문법
scanf("형식", &변수);
주의: &
는 변수의 메모리 주소를 나타내며, 문자열(%s
) 입력 시에는 제외합니다.
예제 2: 사용자 입력 받기
#include <stdio.h>
int main() {
int age;
float height;
printf("나이를 입력하세요: ");
scanf("%d", &age);
printf("키를 입력하세요 (cm): ");
scanf("%f", &height);
printf("당신의 나이는 %d세이고, 키는 %.1fcm입니다.\n", age, height);
return 0;
}
실행 결과
나이를 입력하세요: 25
키를 입력하세요 (cm): 175.5
당신의 나이는 25세이고, 키는 175.5cm입니다.
2. 파일 입출력
C에서 파일 입출력은 데이터를 저장하고 읽는 데 사용됩니다. 이를 통해 프로그램 실행 간 데이터를 유지할 수 있습니다.
파일 열기
파일을 사용하려면 먼저 파일을 열어야 합니다. C에서는 fopen
함수를 사용합니다.
FILE *fp;
fp = fopen("파일명", "모드");
파일 모드
r
: 읽기 모드w
: 쓰기 모드 (기존 내용 삭제)a
: 추가 모드 (기존 내용 유지)
파일 쓰기
fprintf
또는 fputc
/fputs
를 사용해 파일에 데이터를 기록할 수 있습니다.
예제 3: 파일에 데이터 쓰기
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("example.txt", "w");
if (fp == NULL) {
printf("파일 열기 실패\n");
return 1;
}
fprintf(fp, "이것은 파일 출력 예제입니다.\n");
fputs("Hello, File!\n", fp);
fclose(fp);
printf("파일 작성 완료\n");
return 0;
}
파일 읽기
fscanf
, fgetc
/fgets
를 사용하여 파일에서 데이터를 읽습니다.
예제 4: 파일에서 데이터 읽기
#include <stdio.h>
int main() {
FILE *fp;
char buffer[100];
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("파일 열기 실패\n");
return 1;
}
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("읽은 내용: %s", buffer);
}
fclose(fp);
return 0;
}
실행 결과
읽은 내용: 이것은 파일 출력 예제입니다.
읽은 내용: Hello, File!
3. 파일 입출력 실습: 간단한 메모장 프로그램
예제 5: 메모 저장 및 읽기 프로그램
#include <stdio.h>
#include <stdlib.h>
void saveNote();
void readNote();
int main() {
int choice;
do {
printf("\n1. 메모 저장\n2. 메모 읽기\n0. 종료\n선택: ");
scanf("%d", &choice);
switch (choice) {
case 1:
saveNote();
break;
case 2:
readNote();
break;
case 0:
printf("프로그램 종료\n");
break;
default:
printf("잘못된 입력\n");
}
} while (choice != 0);
return 0;
}
void saveNote() {
FILE *fp;
char note[100];
fp = fopen("note.txt", "a");
if (fp == NULL) {
printf("파일 열기 실패\n");
return;
}
printf("메모를 입력하세요: ");
getchar(); // 버퍼 비우기
fgets(note, sizeof(note), stdin);
fputs(note, fp);
fclose(fp);
printf("메모 저장 완료\n");
}
void readNote() {
FILE *fp;
char buffer[100];
fp = fopen("note.txt", "r");
if (fp == NULL) {
printf("파일 열기 실패\n");
return;
}
printf("\n저장된 메모:\n");
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
}
마무리
이번 포스팅에서는 C 프로그래밍에서 콘솔 입출력과 파일 입출력을 다루었습니다. 이를 통해 데이터 입력과 저장, 출력 과정을 이해할 수 있습니다. 위의 예제를 직접 실행하며 연습하면 큰 도움이 될 것입니다.
728x90
반응형
'c 언어 > c 언어 문법' 카테고리의 다른 글
C 언어 조건문과 반복문 (0) | 2024.12.13 |
---|---|
C 언어의 연산자 (0) | 2024.12.12 |
C 언어 데이터 타입과 변수 (0) | 2024.12.12 |
C 프로그램 기본 구조와 `main` 함수 (0) | 2024.12.12 |
C 언어 소개 (0) | 2024.12.12 |