본문 바로가기

C언어

c언어 함수

printf()

 

변환 문자

 

 

sprintf()

 

#include <stdio.h>

개별적으로 출력하지 않고 한꺼번에 문자열로 출력을 할때->sprintf()

string + printf()이다.

 

문자열을 쓸려면 메모리가 필요하다.

이 일시적으로 사용하기 위해서는 배열을 생성하고, 문자열을 담아서->출력하는 경우가 있음

나머지 메모리는 무시를 한다 

 

 

함수의 원형 

int sprintf( 배열, 서식, 값)

 

#include <stdio.h>

 

int main(){

 

     char s1[20];

     sprintf(s1, "hello, %s", "world!");

s1에 저장하며, hello로 서식을 지정

 

printf("%s", s1); 문자열 s1출력

 

return 0;

}

 

#include <stdio.h>

 

int main() {

 

     int nVar =7;

     float fVar = 3.14f

     char string[100]; //99개의 문자를 저장할수있다. null문자 포함해서

 

     sprinf( string, "출력: %d, %.2f , nVar, fVar") //  배열 명을 지정할때-> 배열의 제일 첫번째 메모릴 주소를 의미한다 

     printf("%s", string); //우리가 이 string 배열 (메모리 공간) 안에다가 출력하겠다.

     return 0;

 

}

 

scanf()

화면으로 부터 입력받는다-> 그 입력값을 저장해야한다.

입력된 값을 저장해놓기 위해서는 , 메모리 주소를 알고 있어야한다.

그리고 그곳에서 저장해놓을수 있다.

 

scanf("%d", &num1); // 표준입력을 받아서 이 내가 저장하고자 하는 변수안에 저장한다.

 

키보드가 입력 하게 된 값 -> 키보드 버퍼 -> 차례대로 나열된다.

이 scanf() 이 키보드버퍼에서 차례대로 가져온다

a->b->c 로 입력되면

a->b->c 일대일 대응 되어버린다.

 

int main(){

     int nVar;

     float fVar;

 

     scanf("%d %f", &nVar, %fVar);

     printf("%d %.2f", nVar, fVar);

     return 0;

 

}

 

scanf() 는 엔터키와 반복문이 있으면 에러가 난다.

 

fflush()

 

int main(){

 

 

     char cVar;

 

     for(int i =0; i<3 ; i++){

          scanf("%c", &cVar);

          //fflush(stdin) //fflush를 사용했을때 차이점

          printf("%d \n", cVar);

     }

}

 

scanf() 에러받는다

키보드 버퍼로부터 실행과 동시에 작동이된다

a -> enter- >b -> enter-> c

scanf() 로 하면 -> a ( ) ( ) b ( ) 

엔터키를 가져와서 출력되어버린다. 

 

 

fflush를 사용하면 키보드 버퍼에 있는 값을 다 없어준다

a-> 입력 받음 -> 다 없애버리기

b-> 입력 받음 -> 다 없애버리기

입력값을 받아서 -> 반복문 -> 다 없어버려 -> 입력값 받기 -> 반복문 -> 다 없애버려

flush를 의뢰적으로 써주는 연습 필요.

 

 

 

'C언어' 카테고리의 다른 글

C언어 키보드 관련 함수, 파일 입출력 함수  (0) 2020.01.27
C언어 메모리 관련 함수  (0) 2020.01.27
c언어 키워드  (0) 2020.01.27
C 언어 배열에서 음수 양수 찾기  (0) 2020.01.14
C언어 별찍기  (0) 2020.01.14