[C언어] 입출력 함수와 연산자(1)

2025. 9. 5. 17:23·공부/⚙️C

✅ 1. 표준 입출력의 개념

(1) C 프로그램과 함수

  • stdlib.h 헤더 파일에 EXIT_SUCCESS 는 0으로 되어있음. 즉, return 0 임.
  • 일반적인 함수에서는 반환값이 존재할 때 return 으로 자료형에 맞는 반환값을 넘겨줘야함.
  • 하지만 main() 함수에서는 반환값이 존재할 때 return을 안해줘도 return 0; 문자를 자동으로 넣어주게됨.
  • int argc: 터미널로 넘기는 단어의 갯수를 보내줌
  • char* argv[]: 이것도 단어 두개를 배열에 하나씩 담아서 보내줌.

(2) 표준 입출력의 개념

  • 표준 입력(stdin) 과 표준 출력(stdout) 이 있음.

✅ 2. 형식화 입출력함수

(1) printf() 함수

[ printf() 함수 예시 ]

#include <stdio.h>
int main() {
    char c = 'A';
    int i = 10, j = 20, k = 30;
    printf("간단한 출력 프로그램\n");
    printf("'%c'의 ASCII 코드값은 %d\n", c, c);
    printf("i=%d, j=%d, k=%d\n", i, j, k);
}
// [ 출력 결과값 ]
// 간단한 출력 프로그램
// 'A'의 ASCII 코드값은 65 -> %c = 문자형, %d = decimal
// i=10, j=20, k=30
  • 출력문에 쓰는 해당 %d 와 같은 기호는 출력 양식 변환기호로 불림.
  • printf() 함수로 문자나 정수 값 등을 출력하고 싶다면 반드시 변환기호를 써야함.

(2) printf() 함수 - 출력 양식 변환기호 : 정수 출력

(3) printf() 함수 - 출력 양식 변환기호 : 문자 & 문자열 출력

(4) printf() 함수 - 출력 양식 변환기호 : 실수 출력

(5) 출력 양식 변환기호 활용 예시 - 정수

#include <stdio.h>
int main() {
    printf("%d\n", 0x10); // 부호 있는 10진수 정수 변환 출력
    printf("%x\n", 125); // 부호 없는 소문자 16진수 변환 출력
    printf("%X\n", 125); // 부호 없는 대문자 16진수 변환 출력
    printf("%o\n", 125); // 부호 없는 8진수 변환 출력
}
// 16
// 7d
// 7D
// 175

(6) 출력 양식 변환기호 활용 예시 - 문자, 문자열

#include <stdio.h>
int main() {
    printf("%c\n", 'A'); // 'A' 문자로 출력
    printf("%c\n", 0x42); // 0x42(16진수) = 'B' 출력
    printf("%s\n", "KNOU"); // "KNOU" 문자열 출력
    printf("%s\n", "ab\0cd"); // \0 을 붙히면 뒤의 문자열은 짤림.
}
// A
// B
// KNOU
// ab

(6) 출력 양식 변환기호 활용 예시 - 실수

#include <stdio.h>
int main() {
    printf("%f\n", 12.34f); // %f: double 기본형으로 변환이됨. 즉, float double 포괄함.
    printf("%f\n", 31.4e-1); // 31.4e-1: 31.4 * 10^-1 = 3.140000
    printf("%e\n", 123.45678); // 지수형으로 출력 맨 앞 값빼고는 모두 소수점 표현
    printf("%E\n", 12.345678e-6); // 12.345678 * 10^-6 = 1.2345678 * 10^-5
    printf("%g\n", 123.45678);
    printf("%g\n", 12.345678e-6);
}
// [ 출력 결과 ]
// 12.340000
// 3.140000
// 1.234568e+02
// 1.234568E-05
// 123.457
// 1.23457e-05
  • prinf() 의 출력 서식 지정자에서 소수점 이하 자리수를 기본적으로 6자리로 제한하고 있음.
  • 만약 3.1415926 이 있다면 마지막 6이 반올림되어 3.141593 으로 출력이 됨.
  • %g: 소수점 형식 또는 지수 형식 중 간결한 형식으로 출력

(7) 출력 양식의 편집

  • - 기호를 사용하면 좌측 정렬을 해줌. ( 기본적으로는 우측정렬임 )
  • + 기호는 해당 수의 부호를 출력해줌.
  • ' ' 는 부호 자리를 확보해서 출력해줌. 즉, 양수인 경우 공백이고 음수인 경우 - 부호가 출력됨.
  • 0은 수 앞의 빈 자리를 0으로 채워줌. 공간이 남으면 해줌.
  • 출력을 위한 최소 자릿수를 정수로 지정해 줄 수 있음.
  • . 소수점 이하 자릿수만 출력해줌.

 

[ 출력 양식의 편집 - 정수형 ]

[ 출력 양식의 편집 - 실수형 ]

  • 실수형에 숫자를 넣는 경우 즉, 위와 같이 10을 넣게 되면 자릿수가 10자리로 늘어남
  • '.' 과 같이 소수점으로 자릿수를 표기를 안해주면 소수점 뒤의 수에 자동으로 0이 채워짐
  • 10.1f = 10자리를 확보 한 뒤 오른쪽에 정렬된 상태로 소수점 한자리를 제외한 나머지를 잘라서 출력

(8) scanf() 함수

[ scanf() 함수의 용도 ]

[ 입력 양식 변환 기호 - 정수 입력 ]

[ 입력 양식 변환 기호 - 실수 ]

[ 입력 양식 변환 기호 - 문자 및 문자열 입력 ]


✅ 3. 기타 입출력함수

(1) 문자 단위의 입출력

[ getchar() 함수 ]

ch = getchar();
printf("%c", ch); // 입력값이 출력됨.
  • stdin으로부터 1개의 문자를 입력받을 수 있는 함수이다. 즉, 표준입력으로 부터 하나의 문자 입력

[ putchar() 함수 ]

putchar(문자);
  • stdout에 1개의 문자를 출력해주는 함수임.

[ getchar() 및 putchar() 함수의 활용 예 ]

#include <stdio.h>
int main() {
    char c;
    printf("문자 하나를 입력하세요\n");
    c = getchar();
    printf("입력한 문자 = ");
    putchar(c);
}
  • getchar() 함수를 호출하면 문자 하나를 입력 할 수 있게 되고, 입력 시 c 변수에 값이 담기게 된다.
  • 이후 putchar() 함수를 호출하면서 c를 넣게 되면 해당 변수값을 출력을 해준다.

(2) 문자열 단위의 입출력

[ gets() 함수 ]

gets(문자열변수);
  • stdin 으로부터 행의 끝까지 문자열을 입력 할 수 있다.
  • 문자열변수는 입력한 문자를 충분히 저장할 수 있어야 한다. 즉, 문자열 크기를 잘 생각해야함.

[ puts() 함수 ]

puts(문자열);
  • stdout 에 문자열을 출력 할 수 있게 도와주는 함수이다.
  • 출력 후 자동으로 행이 바뀌는 특징이 있다.

[ gets() 및 puts() 함수의 활용 예 ]

#include <stdio.h>
int main() {
    char str[100];
    printf("문자열을 입력하세요\n");
    gets(str);
    printf("입력한 문자열 = ");
    puts(str);
    puts("KNOU");
}
// 결과값
// 입력: 123456
// 출력: 123456 , KNOU

'공부 > ⚙️C' 카테고리의 다른 글

[C언어] 함수와 기억 클래스(1)  (0) 2025.10.15
[C언어] 선택 제어문과 반복 제어문  (0) 2025.10.13
[C언어] 입출력 함수와 연산자(2)  (0) 2025.10.03
[C언어] 자료형과 선행처리기  (1) 2025.08.29
[C언어] C 언어의 개요  (1) 2025.08.18
'공부/⚙️C' 카테고리의 다른 글
  • [C언어] 선택 제어문과 반복 제어문
  • [C언어] 입출력 함수와 연산자(2)
  • [C언어] 자료형과 선행처리기
  • [C언어] C 언어의 개요
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (233)
      • 방송통신대학교 (87)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (15)
        • 🔢자료구조 (14)
        • 🧬알고리즘 (10)
        • ⚙️운영체제 (14)
        • 🕸️이산수학 (11)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🖥️컴퓨터과학과 (1)
      • 공부 (72)
        • 📚백엔드 공부 (6)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (12)
        • ⚡Python (15)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 네트워크 (7)
        • 📜HTTP (7)
      • 스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    C언어
    컴퓨터과학과
    함수
    이산수학
    컴퓨터과학 개론
    운영체제
    알고리즘
    파이썬
    배열
    그래프
    방송대
    방통대
    자바
    자료구조
    방송통신대학교
    유비쿼터스
    Python
    spring
    Java
    컴퓨터의 이해
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[C언어] 입출력 함수와 연산자(1)
상단으로

티스토리툴바