본문 바로가기
프로그래밍/C

입력함수, 연산자

by leestun 2020. 7. 15.
반응형

[입력함수]

키보드로 입력을 하는 기능이 있는 함수

 

-전제조건: 변수를 미리 생성해야 한다.

scanf("형식지정자",&변수)

 

<형식지정자>

int      %d

float    %f

double %lf

char     %c

char[]   %s

 

&변수: 변수의 주소값

 

<실습> 정보입력.c

나이, 키, 이름, 혈액형(A,B,O있다고 가정한다)을 입력받아 다음과 같이 출현하도록 구현

(출력형식)

나이:~세

키:~CM

이름:~님

혈액형:~형


#include <stdio.h>

 int main() {

 int age;

 double height;

 char name[20];

 char blood;

 char address[100];

 

 printf("나이:");

 scanf("%d",&age);

 

 printf("키:");

 scanf("%lf", &height);

 

 printf("이름:");

 scanf("%s",name);   //문자열변수 & 안붙임

 

 printf("혈액형:");

 scanf(" %c", &blood);

 

 printf("주소:");

 scanf(" %[^\n]", address);

 

 printf("입력한 나이:%d세\n",age);

 printf("입력한 키:%.1lfcm\n", height);

 printf("입력한 이름:%s님\n", name);

 printf("입력한 혈액형:%c형\n",blood);

 printf("입력한 주소:%s\n", address);

 return 0;

}


문자형 입력받을 때 오류가 나는 이유는?

문자형은 1byte로 입력을 받는데 문자형을 저장해야하는 버퍼에 이전에 입력했던 엔터키가 저장되어 이미 입력이 있다고 착각을 한다.

->따라서, 문자형을 입력받기 전에는 버퍼를 비위주는 작업이 필요하다.

 

방법은

scanf(" %c",&변수명);

형식지정자를 사용하기 전에, 한칸을 띄워줌으로써 버퍼를 비워준다.

 

패턴문자

%[^\n]: 엔터를 제외한 나머지는 다 저장해라

 

 

 

문자열에 값 저장하기

char 변수명[] = "넣을 문자열값";

 

초기화하지 않고 선언하기

char 변수명[크기];

->해당 크기만큼 문자 저장이 가능한 문자열 변수 생성;

 

문자열은 입력받을때 변수명 앞에 &를 붙히지 않는다.

->문자열 변수는 변수명 자체가 변수의 주소이기 때문이다.

 


[연산자]

연산 기능이 있는 문자를 말한다

ex)

 식: 10+20

 연산자: +

 피연산자: 10,20

 

연산자의 종류

 

산술 연산자

비트 연산자

관계 연산자

논리 연산자

삼항 연산자

대입 연산자

단항 연산자

[산술 연산자]

+,-,*(곱셈),/(나눗셈)

%(나머지)

 

5%2 = 1

11%4 = 3

-> 홀짝구분시 많이 사용

N%2 = 1

N:홀수

N%2 = 0

N:짝수

 

[비트 연산자]

비트(bit):데이터의 최소 단위

비트 연산자:비트 단위로 연산을 하는 문자

1bit x8 = 1byte

 

비트 덧셈 연산

 

   7=111(2)

   5=101(2)

12=1100(2)

 

-비트 논리 연산자

1 or 0

논리연산: 참,거짓의 값으로 하는 연산

비트연산: 비트 단위로 하는 연산

1: 참

0: 거짓

 

연산자의 종류

and & : A 그리고 B가 참일때만 결과가 참

or | : A 또는 B가 참이라면 결과가 참

xor ^ : A 와 B가 서로 다를때 결과가 참

not ~ : A의 결과가 참이면 거짓, 거짓이면 참

 

[and] 그리고

A          B      결과

1          1        1

0          1        0

1          0        0

0          0        0

 

[or] 또는

A          B      결과

1          0        1

0          1        1

0          0        0

1          1        1

 

[xor] 서로다른

A          B      결과

1          1        0

0          1        1

1          0        1

0          0        0

 

[not] 부정

A       결과

1         0

0         1

반응형

'프로그래밍 > C' 카테고리의 다른 글

제어문-반복문  (0) 2020.07.21
제어문- 조건문  (0) 2020.07.18
연산자(2)  (0) 2020.07.16
출력함수,변수, 자료형  (0) 2020.07.14
프로그래밍 기초  (0) 2020.07.14