1. c언어의 표준 입/출력 함수의 개요
- scanf()
- getchar()
- gets()
- printf()
- putchar()
- puts()
2. scanf() 함수
키보드로 입력받아 변수에 저장하는 함수
- 입력받을 데이터의 자료형, 자릿수를 지정
- 한 번에 여러개의 데이터를 입력 받을 수 있다.
- 서식 문자열과 변수의 자료형은 일치
scanf(서식 문자열, 변수의 주소)
- 예)
scanf("%3d", &a)
- % : 서식 문자임을 지정
- 3 : 입력 자리수를 3자리로 지정
- d : 10진수로 입력
- &a : 입력받은 데이터를 변수 a의 저장
- 서식문자열
- %d : 정수형 10진수
- %j : 부호없는 정수형 10진수
- %o : 정수형 8진수
- %x : 정수형 16진수
- %c : 문자
- %s : 문자열
- %f : 소수점을 포함하는 실수
- %e : 지수형 실수
- %ld : long형 10진수
- %lo : long형 8진수
- %lx : long형 16진수
- %p : 주소를 16진수
3. printf()함수
사용자가 프로그램과 대화하기 위해 사용하는 함수를 입출력 함수 또는 I/O 함수라고 합니다.
printf() 함수와 scanf() 함수는 C언어 표준 입출력 함수 중에서도 가장 많이 사용되는 대표적인 입출력 함수입니다.
printf(서식문자열, 변수)
- printf('%-8.2f',200.2)
%
: 서식 문자임을 지정
-
: 왼쪽부터 출력
8
: 출력 자릿수를 8자리로 지정
2
: 소수점 이하를 2자리로 지정
f
: 실수로 지정
- printf 는 특수 문자 출력이 가능하다.
\a
: alert 경고음(비프음) 소리
\b
: 백스페이스 backspace
\f
: 폼 피드 form feed
\n
: 개행 new line
\r
: 캐리지 리턴 carriage return 줄의 맨 처음으로 이동
\t
: 수평탭 tab 만큼 이동
\v
: 수직탭
\\
: 백슬래시
\'
: 작은 따옴표
\"
: 큰따옴표
4. 기타 표준 입 출력 함수
입력
- getchar() : 키보드로 한 문자를 입력받아 변수에 저장하는 함수
- gets() : 키보드로 문자열을 입력받아 변수에 저장하는 함수, 엔터키를 누르기 전까지 하나의 문자열로 인식하여 저장
출력
- putchar() : 인수로 주어진 한 문자를 화면에 출력하는 함수
- puts() : 인수로 주어진 문자열을 화면에 출력한 후 커서를 자동으로 다음 줄 앞으로 이동하는 함수
5. 파일 입/출력 함수
파일 출력 함수
fputc 함수 (file put char)
- 호출방법 : fputc(출력할문자,파일포인터);
- 현재 파일포인터의 위치에 문자를 하나 출력한다.
- 'abcdef' 이런식으로 문자에 문자열을 작성하면 마지막 글자인 f만 출력된다.
- 그리고 출력한 문자가 무엇인지 아스키코드에 대응되는 int형으로 반환된다.
fputs 함수 (file put string)
- 호출방법 : fputs(출력할문자열,파일포인터);
- 현재 파일포인터의 위치에 문자열을 출력해준다.
- 문자열 내에 개행이나 탭같은 이스케이프시퀀스도 다 적용이 된다.
fprintf 함수
- 호출방법 : fprintf(파일포인터,출력할문자열,...);
- 현재 파일포인터의 위치에 서식문자를 사용해 문자열을 출력할수 있게 해준다.
- 이스케이프시퀀스는 물론 서식문자도 사용할수 있다.
- 그리고 출력한 문자열의 길이를 반환한다.
파일 입력 함수
fgetc 함수 (file get char)
- 호출방법 : fgetc(파일포인터);
- 현재 파일포인터의 위치에서 문자 하나를 읽어온다..
- int형으로 읽어온 문자를 반환한다.
- 다른 함수들처럼 매개변수로 읽어온 내용을 저장할변수를 받지 않으므로, 읽어온 문자를 저장하려면 대입연산자를 사용해 변수에 대입해야한다..
fgets 함수 (file get string)
- 호출방법 : fgets(읽어온내용을 저장할 문자배열,파일포인터);
- 현재 파일포인터의 위치에서 개행문자를 만날때까지 읽어오는데 쉽게 말해 개행문자를 포함해 한줄을 읽어온다고 생각하면 된다.
fscanf 함수
- 호출방법 : fscanf(파일포인터,서식문자열,저장할변수의주소...);
- 현재 파일포인터의 위치부터 정보를 읽어오며 스페이스바(공백)이나 개행문자를 만나면 그 앞에까지만 읽어온다.
- scanf함수와 마찬가지로 읽어온 내용을 저장할 변수를 넘겨줄때에는 주소로 넘겨줘야하므로 배열이 아닐경우 주소연산자 &을 붙여야한다.