표준입출력함수
- 표준입출력함수
C언어에서 입력, 출력을 제공하는 함수가있다. 표준입출력함수는 <stdio.h> 파일에 정의되어있어 헤더파일을 추가하면 사용할수있다.
*파라미터 (Parameters) : 함수에 들어오는 인수를 뜻한다.
함수란 무엇인가?
자판기에 1번 물건을 사고싶을때 어떻게 해야할것인가?
우리는 돈을 자판기에 넣어 1번버튼을 누르면 자판기에서 1번 물건을 줄것이다.
돈은 우리가 C언어에서 사용하는 인수 (Parameter)이다.
그리고 자판기는 함수이다. 자판기에서 사용자에게 버튼 입력이나 아니면 자동으로 주는 건 자판기에 따라 다르게 설정할수있다.
마지막으로 결과물은 함수의 출력형식 과 같다.
쉽게 이해하기위해 "우리는 함수는 자판기와 같다 "로 이해하는게 좋겠다.
하지만 꼭 저 위에 사진이 맞는것은 아니다.
C언어에선 void 라는 타입이 존재하기때문에 입력만 받고 출력을 하지않는경우도 있다.! 하지만 이해를 돕기위해 위에와 같은 자판기 형태로 이해하면 좋을것이다.
함수 (Parameter) |
설명 |
형태 |
printf(const char* format , ...); |
포멧에 맞게 출력해준다. 첫번째 파라미터는 const char* 형태 "" 로 감싸 문자상수로 입력해주어야한다. 첫번째 이후 파라미터는 입력해도 되고 없어도 된다. 하지만 포맷형태 수만큼 추가해줘야한다. |
출력 |
putchar() |
파라미터받은 값을 문자하나 출력해준다. |
출력 |
puts() |
문자열을 출력해준다. |
출력 |
scanf(const char* format , ..) |
포멧에 맞게 입력받는다. 첫번째 파라미터는 const char* 형태 "" 로 감싸 문자상수로 입력해주어야한다. 첫번째 이후 파라미터는 변수의 주소값에 접근해야하므로 '&'연산자를 꼭 붙여줘야한다. 입력받을때는 띄어쓰기, 엔터를 입력받으면 입력을 중단한다. |
입력 |
getchar() |
문자 하나를 입력받는다. |
입력 |
gets() |
문자열을 입력받는다. |
입력 |
sprintf(char* buffer ,const char * format , ...) | 첫번째 파라미터 : 입력받을버퍼를 입력해준다. 두번째 파라미터 : const char* 문자상수 형태이다. 세번째 이후 파라미터는 포멧에 맞게 파라미터를 추가해주면된다. | 출력함수 |
<출처 : cppreference https://cppreference.com>
사용의 예
#include<stdio.h> // 표준입출력함수를 사용하기 위해선 stdio.h 반드시 추가해주어야한다!
void main(){
int number = 10;
char word = 'c';
printf("Hello World C \n");
printf("number %d word %c",number,word); // 해당 포멧에 맞게 파라미터를 넣어주었다.
putc("A");
putc(word);
puts("Hello World C\n");
int inputA = 0;
char inputB[5];
char inputC;
scanf("%d",&inputA);
scanf("%4s",&inputB); //문자열 입력을 4개까지만 받겠다는 뜻.
inputC = getchar(); // 문자열 하나를 inputC 에 입력
inputB = gets();
sprintf(inputB , "m %d",number); // inputB를 출력하면 m 10 이 나온다.
}
- 변환기호
포맷 |
기능 |
%d |
부호가 있는 10진 정수형태 포멧 |
%ld |
부호가 있는 long 10진 정수 |
%f |
실수형태 |
%lf |
double 형태 실수 |
%c |
문자 하나 |
%s |
문자열 |
%u | 부호없는 10진 정수 |
%o | 부호없는 8진수 형태 |
%x | 부호없는 16진수 형태 |
%e | 지수형태 |
연산자 (Operator)
- 연산자 (Operator) : 각 데이터(자료)에대해 산술연산 수행하도록 하는 기호를 뜻함.
- 산술연산자
구분 |
기호 |
설명 |
이항연산자 |
+, -, *, / |
덧셈, 뺄셈, 곱셈 나눗셈 계산 |
% |
모듈러 연산자 나눗셈의 나머지를 구해준다. |
|
단항 연산자 |
- |
부호의 반전 |
++ |
1 을 증가 |
|
-- |
1을 감소 |
산술 연산자 사용의 예
#include<stdio.h>
void main(){
int a= 0, b = 3, c = -2;
a = b + c; // a 에 b+c 계산. 결과 : 1
a = b - c; // a 에 b-c 계산. 결과 : 5
a = b * c; // a 에 b*c 계산. 결과 : -6
a = b/c ; // a 에 b/c 계산. 결과 : -1
// (변수가 a,b,c 는 정수를담는 변수기때문에 정수로 표현된다.)
a = b%3; // a 에 b를 3으로 나눈 나머지를 구해준다. 결과 : 0
// 모듈러 연산자는 나눗셈을하고 난 나머지값을 구하는것이다! 꼭 기억하자.
c = a++; // c에 대입한뒤 a값이 증가한다.
printf("%d",c); // 0 이 출력된다. 하지만 a = 1
b = ++c; // c 값을 먼저 증가하고 대입한다.
printf("%d",b) b값은 1 이다.
}
- 관계연산자
True = 1 , False = 0 으로 출력된다.
기호 |
설명 |
== |
연산자를 기준으로 좌측데이터와 우측데이터를 비교하여 같은지 판별한다 좌측과 우측데이터가 값을경우 true , 다를경우 false 값을 리턴한다. |
!= |
연산자를 기준으로 좌측데이터와 우측데이터를 비교하여 다른지 판별한다. 좌측과 우측데이터가 다를경우 true, 다를경우 false값을 리턴한다. |
>= , <= , > , < |
좌측과 우측 데이터의 대소관계를 나타낸다. |
관계 연산자 사용의 예
#include<stdio.h>
void main(){
int a = 10, b = 5 , c = 5;
bool rOper = b == c ; // 결과값 1
rOper = b != c ; // 결과값 0
rOper = a < b // 결과값 0
rOPer = a>= c // 결고값 1
}
- 논리연산자
기호 |
기능 |
&& |
논리곱(AND) 좌측데이터와 우측데이터가 둘다 참일경우에만 true값을 리턴 |
|| |
논리합(OR) 좌측데이터와 우측데이터가 하나라도 참인경우에 true값을 리턴 |
! |
논리부정(NOT) 데이터가 참일경우 거짓, 거짓인경우 참으로 변경 |
논리 연산자 사용의 예
#include<stdio.h> void main(){ bool isTrue = true; bool isFalse = false; bool result = isTrue && isFalse; // 결과값 false: 0 result = isTrue || isFalse ; // 결과값 true : 1 result = !isTrue; // 결과값 false : 0 }
- 대입 연산자
연산자 |
설명 |
= |
좌측에 우측 데이터를 대입한다. |
+= |
좌측데이터에 우측데이터를 더한뒤 좌측에 대입한다. |
-= |
좌측데이터에 우측데이터를 뺀뒤 좌측에 대입한다. |
*= |
좌측데이터에 우측데이터를 곱한뒤 좌측에 대입한다. |
/= |
좌측데이터에 우측데이터를 나눈뒤 좌측에 대입한다. |
%= |
좌측데이터에 우측데이터를 나눈나머지를 구한후 좌측에 대입한다. |
&= |
좌측데이터에 우측데이터를 논리연산 AND한 뒤 좌측에 대입한다. |
|= |
좌측데이터에 우측데이터를 논리연산 OR한 뒤 좌측에 대입한다. |
^= |
좌측데이터에 우측데이터를 논리연산 XOR한 뒤뒤 좌측에 대입한다. |
<<= |
좌측데이터에 우측데이터를 좌측으로 Shift Bit 이동한뒤에 대입한다. |
>>= |
좌측데이터에 우측데이터를 우측으로 Shift Bit 이동한뒤 대입한다. |
대입연산자 사용의 예
#include<stdio.h> void main(){ int a = 3, b = 2, c = 1; a = b; // a = 2 b += 1; // b = 3 printf("a = %d, b = %d, c = %d", a, b, c); /* 실행 결과 a = 2, b = 3, c = 1 */ }
- 조건연산자
형식 : (조건) ? 수식1 : 수식2;
설명 : 조건이 맞으면 수식1을 실행, 거짓일경우 수식2를 실행한다.
조건연산자 사용의 예
#include<stdio.h>
void main(){
int a = 5, b = 3 ,result =0 ;
a>=b ? result = 10 : result = -10;
printf("result = %d \n",result);
/*
결과값
result = 10
*/
}
- 비트 연산자
연산자 |
설명 |
& |
논리연산자 AND 두 bit 가 true 일경우만 true를 리턴 |
| |
논리연산자 OR 하나의 bit가 true 일경우 true 리턴 |
^ |
논리 연산잔 XOR 두 bit가 서로 다를경우만 true 리턴 |
~ |
논리 연산자 NOT bit 가 True -> False , False -> True 로 리턴 |
>> |
쉬프트 연산자 좌측에 있는 값을 우측 수치(값만큼 왼쪽으로 Shift) |
<< | 쉬프트 연산자 좌측에 있는 값을 우측 수치(값만큼 오른쪽으로 Shift) |
- 기타연산자
연산자 |
설명 |
sizeof() |
지정한자료형, 파라미터로 들어오는 변수의 기억공간의 크키(Byte)를 구해준다. |
case() |
지정한 자료형의 데이터타입을 변경한다. |
& |
변수의 저장된 메모리주소값을 리턴해준다. |
* |
포인터 연산자 , 메모리주소값의 실제값을 리턴해준다. |
방송통신대학교 과제물 제출방법 (오프라인 과제물제출 , 중간과제물) (31) | 2019.04.01 |
---|---|
C언어 반복문 (31) | 2019.03.31 |
C언어 선택제어문. (31) | 2019.03.31 |
C언어 선행처리기 (0) | 2019.03.19 |
처리장치와 데이터 (0) | 2019.03.17 |
컴퓨터의 이해 (31) | 2019.03.11 |