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 |